我的问题是@PostConstruct被调用两次,即使它不应该被调用。我搜索了很多,并发现了与球衣https://java.net/jira/browse/JERSEY-1883?filter=-3类似的问题。然而,我试图做一个小例子,即使没有任何咔哒声,显然仍然会引起问题。
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import javax.ejb.Startup;
@Singleton
@Startup
public class TestSingleton {
@PostConstruct
public void init() {
System.out.println("How many times am I being called?");
}
}
配置
有什么想法吗?
答案 0 :(得分:1)
我通过使用@PreDestroy
或发布应用程序服务器来解决这个问题。
问题是"正常"。在服务器启动后使用Eclipse作为IDE,将再次发布应用程序。因此,您只会看到@PreDestroy
的一条日志消息,但只有@PostConstruct
的两条消息。
改变事物和事后出版也是如此。在这里,您应该只能看到来自@PostConstruct
的消息。
然后你就知道一切都好了。
答案 1 :(得分:0)
@PostConstruct - 在创建bean实例后立即调用它。 你可以看到这个: @Startup @Singleton instantiated twice in WebLogic (EJB 3.1)