【发布时间】:2014-12-14 15:42:45
【问题描述】:
我正在使用 Spring + Jpa,我希望将 EntityManager 放入我的 @Configuration 类中。
现在我的课是这样的:
@Configuration
@PropertySource("classpath:base.properties")
public class Config {
private static final Logger log = Logger.getLogger(Config.class);
@Bean
public SpringContextManager contextManager() {
return new SpringContextManager(new DefaultApplication());
}
@Bean(initMethod = "start", destroyMethod = "stop")
public ServerSession serverSession() throws Exception {
try {
ServerSession serverSession = new ServerSession(urlGateway, useSsl, hostGateway, portGateway);
serverSession.setDefaultTimeToLive(5000);
return serverSession;
} catch (Throwable e) {
log.error("", e);
return null;
}
}
@Bean
public PluginManager pluginManager() {
PluginManager pluginManager = new PluginManager();
ThreadLocalManager.set(pluginManager);
return pluginManager;
}
我知道我不能将@PersistenceContext添加到@Configuration类,所以我现在不知道如何获取entityManager。
这样做的目标是让 entityManager 尽快应用程序启动,因为我需要将其设置为 ThreadLocal 类(我需要该类在 JPA entitylistener 中使用 entityManager,其中注入 persistenceContext 不起作用)。
现在我从使用 @Service 注释的服务中获取 entityManager,但将这些设置放入 @Configuration 类会更清晰。看起来更干净。
感谢您的帮助。
【问题讨论】:
-
如果你在监听器中需要它,那么只需在监听器中进行查找。此外,如果它是一个常规的 spring 监听器注入应该可以工作。
-
你能举个例子吗?使用简单的@inject 不起作用。谢谢
标签: spring spring-mvc jpa entitymanager