gpt4 book ai didi

java - 将 Spring 存储库注入(inject) Spring @Configuration 类

转载 作者:行者123 更新时间:2023-11-30 02:50:14 24 4
gpt4 key购买 nike

我需要读取我的数据库以在 Spring @Configuration 类中加载自定义设置。

我有类似的东西:

 @Configuration
public MyConfigClass implements ApplicationContextAware{

@Bean(initMethod = "start", destroyMethod = "stop")
public ServerSession serverSession() throws Exception {
ServerSession serverSession = new ServerSession(urlGateway, useSsl, hostGateway, portGateway);
return serverSession;
}

我应该从数据库而不是属性文件中读取参数。我知道我不能将我的存储库直接@Inject到此类中,但是有一个技巧或其他东西允许我这样做或至少在数据库上进行查询?

我正在使用 Hibernate + Spring + Spring Data。

最佳答案

我更喜欢将必要的依赖项作为参数注入(inject)。在 @Configuration 类中,在字段中使用 @Autowired 对我来说看起来不自然(仅使用有状态字段,因为配置应该是无状态的)。只需将其作为 bean 方法的参数提供即可:

@Bean(initMethod = "start", destroyMethod = "stop")
public ServerSession serverSession(MyRepo repo) throws Exception {
repo.loadSomeValues();
ServerSession serverSession = new ServerSession(urlGateway, useSsl, hostGateway, portGateway);
return serverSession;
}

这可能需要在方法级别使用@Autowired本身,具体取决于Spring版本:

@Bean(initMethod = "start", destroyMethod = "stop")
@Autowired
public ServerSession serverSession(MyRepo repo) throws Exception {
repo.loadSomeValues();
ServerSession serverSession = new ServerSession(urlGateway, useSsl, hostGateway, portGateway);
return serverSession;
}

另请参阅:

关于java - 将 Spring 存储库注入(inject) Spring @Configuration 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38921285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com