假设我有以下 Spring 上下文配置:
@Configuration
public class Configuration {
@Bean
public A a() {
return new A(b());
}
public B b() {
return new B();
}
}
是否应该注释 b()
与 @Bean
如果唯一的地方 B
所需实例在 a()
范围内对于 A
实例构建?
最佳答案
如果B
是一个计划Java类(没有Spring注释)那么不,您可以使用当前配置。因为这是 A
类的私有(private)成员。
但是如果你有需要由 spring 管理的方法(在 B
类中),比如 @PostConstruct 或 @PreDestroy,那么你应该用 B
创建一个 Bean > 类:
@Bean
public A a(B b) {
return new A(b);
}
@Bean
public B b() {
return new B();
}
此类情况有:
- 关闭/关闭时关闭资源
- 执行程序在关闭时关闭
- jdbc 连接
- 等等
关于java - @Bean注解的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36447440/