@Managed 用法说明
@Component 和 @Bean 这两个注解,语义性不强。v3.5 后新增更具语义的 @Managed (容器托管的意思)。
1、注解在类上。相当于 @Component
注解在类上,表示此为“容器托管的类”。会自动构建实例并装配,然后注册到容器。
@Managed
public class UserService { }
2、注解在方法上。相当于 @Bean
注解在方法上,表示此为“容器托管的方法”。会自动装配并运行方法,如果结果不为 null 则注册到容器。
@Configuration
public class DemoConfig {
@Managed(value = "db1", typed = true) // 或 @Managed (v3.5 后支持)
public DataSource db1(@Inject("${demo.db1}") HikariDataSource ds){
return ds;
}
}