我正在使用休眠,弹簧& JSF的应用程序。 我实际上是在用Jersey(JAX-RS)开发一个带Restfull WebService的应用程序。为了这个需要,我用@Component注释了我的类。在这个类中,我需要调用一个服务来从数据库中抓取一些东西。@Inject,@AutoWired,@Resource&@ManagedProperty:我应该使用哪一个,何时何地?
@Component
@Path("/Graphic")
public class GraphicService {
//@Autowired //@Inject
//ParticipantBo participantBo;
or
//@ManagedProperty("#{participantBo}")
//private ParticipantBo participantBo;
我在教程中遇到了一些注释,我不知道/很好地理解其含义。 所以我想做一个检查,看看我的整个应用程序的配置是否正常,或者如果我可以清理一些东西。
大多数情况下,我正在使用@ManagedProperty注解在@ManagedBean注释的类中包含一个依赖项(一个叫做Dao的ServiceBO)。
@ManagedBean(name="participantController")
@ViewScoped
public class AddParticipantBean implements Serializable{
private static final long serialVersionUID = -6952203235934881190L;
@ManagedProperty(value="#{participantBo}")
ParticipantBo participantBo;
}
我在那里,我宣布我的所有类这样一个applicationContext.xml文件:
<!-- Participant Data Access Object -->
<bean id="participantDao" class="X.X.X.dao.participant.ParticipantDaoImpl" >
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- Participant Business Object -->
<bean id="participantBo" class="X.X.X.bo.participant.ParticipantBoImpl" >
<property name="participantDao" ref="participantDao" />
</bean>
是我的配置做得很好?我可以配置不同的应用程序吗? ,也许没有XML声明?使用@注入或@AutoWired也许?但是他们的用例是什么?