1. @ComponentScan
@ComponentScan("org.example")- 扫描多包
@ComponentScan({"org.example.xxx1", "org.example.xxx2"}) - 存在多个@ComponentScan时,可以使用
@ComponentScans将这些@ComponentScan 放在里面统一管理
1.1 @ComponentScans
@ComponentScan("org.example.xxx1")
@ComponentScan("org.example.xxx2")
// 等价
@ComponentScans({
@ComponentScan("com.example.xxx1"),
@ComponentScan("com.example.xxx2")
})
2. @Import 导入组件
- 导入单个组件
CustomConfig.class - 导入多个组件
@Import({CustomConfig.class, MyConfig.class}) - id 默认是组件的全类名
@Configuration
@Import(CustomConfig.class)
public class UserConfig {
}
配置类
@Configuration
public class CustomConfig {
@Bean
public User query() {
return new User("yuan", 25);
}
}
2.1 @Import 高级用法
- ImportSelector 导入选择器
3. @ImportResource 原生配置文件引入
情况一:老项目里是 xml 文件配置
情况二:第三方 jar 里是 xml 文件
@ImportResource("classpath:beans.xml")
public class MyConfig {}
4. @PropertySource 属性值绑定
- 引入外部配置文件
.properties
@Configuration
@PropertySource("classpath:config/config.properties")
public class UserConfig {
@Bean("user")
public User updateUser() {
return new User("Tinyspot", 12);
}
}








网友评论