問題: 當我在兩個其他類(Servlets)中注入的2個子類注入Bean(在過濾器中)時,我有一些意外的行爲。現在,注入的超類可以在運行時持有對子類實例的引用(隨每個容器重新啓動而更改)。注入的超類Bean如何獲取注入的錯誤實例(子類Bean實例)?
我一定犯了一個嚴重的錯誤,但我無法弄清楚究竟是什麼。
其他信息:
我使用Java EE 6
類結構:
在我注入,其保持的隨機實例的子類中的一個或超類的過濾器超類:
@EJB
private ClientLogger clientLogger;
su每過班開始是這樣的:
@Stateless
@LocalBean
public class ClientLogger implements HcpEntityBeanLogger<Client> {
private Client client;
public ClientLogger(){
}
....
}
該子豆我在我的Servlet的一個注:
@Stateless
@LocalBean
public class AdminClientLogger extends ClientLogger {
public AdminClientLogger(){
}
...
}
解決方案的嘗試:
所以據我瞭解的子類,獲取最後一次注入將是由clientLogger引用的實例,但爲什麼我爲什麼不能有3個不同的實例並在這裏使用繼承?
編輯: 我注入多個查詢豆類,所有實現相同的接口,所有的人都將持有相同的實例的引用,當再次面對這個問題。
解決的辦法是增加beanName德恩注入接口EJB
@EJB(beanName="name of your bean class or name specified in @Stateless(name=".."))