Я использую Spring + Jpa, и я хотел бы иметь EntityManager в моем классе @Configuration.Spring - получить 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 (мне нужен этот класс, чтобы использовать entityManager внутри объекта сущностей JPA, где инкремент persistenceContext не работает).
Теперь я получаю entityManager из службы, аннотированной с помощью @Service, но было бы проще сделать эти настройки в классе @Configuration. Кажется более чистым.
Благодарим за помощь.
Если вам это нужно внутри слушателя, просто выполните поиск в слушателе. Также, если это обычная инъекция весеннего слушателя, нужно просто работать. –
Можете ли вы привести пример, пожалуйста? С простым @inject не работают. благодаря – drenda