【问题标题】:Spring - get EntityManager from @Configuration classSpring - 从 @Configuration 类获取 EntityManager
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-07-23
    • 2011-02-13
    • 2017-01-30
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    相关资源
    最近更新 更多