我正在使用休眠,彈簧& 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也許?但是他們的用例是什麼?