@Bean 注解的使用
Usage of @Bean annotation
假设我有以下 Spring 上下文配置:
@Configuration
public class Configuration {
@Bean
public A a() {
return new A(b());
}
public B b() {
return new B();
}
}
如果需要 B
实例的唯一位置在 a()
内用于 A
实例构造,是否应该用 @Bean
注释 b()
?
如果 B
是一个计划 Java class(没有 Spring 注释)那么不,您可以使用当前配置。因为这是 A
class.
的私有成员
但是如果你有需要由 spring 管理的方法(在 B
class 内),比如 @PostConstruct 或 @PreDestroy,那么你应该从中创建一个 Bean B
class:
@Bean
public A a(B b) {
return new A(b);
}
@Bean
public B b() {
return new B();
}
这样的案例是:
- 资源将于 shutdown/close
关闭
- 关闭时要关闭的执行程序
- jdbc 连接数
- 等等
假设我有以下 Spring 上下文配置:
@Configuration
public class Configuration {
@Bean
public A a() {
return new A(b());
}
public B b() {
return new B();
}
}
如果需要 B
实例的唯一位置在 a()
内用于 A
实例构造,是否应该用 @Bean
注释 b()
?
如果 B
是一个计划 Java class(没有 Spring 注释)那么不,您可以使用当前配置。因为这是 A
class.
但是如果你有需要由 spring 管理的方法(在 B
class 内),比如 @PostConstruct 或 @PreDestroy,那么你应该从中创建一个 Bean B
class:
@Bean
public A a(B b) {
return new A(b);
}
@Bean
public B b() {
return new B();
}
这样的案例是:
- 资源将于 shutdown/close 关闭
- 关闭时要关闭的执行程序
- jdbc 连接数
- 等等