Spring - 从@Configuration类获取EntityManager

时间:2014-10-19 16:05:41

标签: spring spring-mvc jpa entitymanager

我使用的是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类会更清晰。似乎更干净。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我找到了一个很好的例子来解决我的问题。这是教程的链接:link