文章目录
1. @SpringBootConfiguration - 显示自身是Spring配置类注解
其实就是@Configuration且配合 @Bean注解使用 - 扫描方法@Bean生成的对象交给容器管理
@Configuration
@Import(DataSourceConfig.class) //导入其他类的配置文件 - 其他类可不用在加@Configuration注解
public class JavaConfig {
//等价于 <bean class="top.linruchang.domain.User">
@Bean
public User getUser() {
User user =new User();
user.setId(1);
user.setName("user-1");
return user;
}
@Bean
public UserDao getUserDao() {
return new UserDao();
}
}
读入自己的配置文件,而没有将数据源配置项写在application.properties上面
@PropertySource(value="classpath:db.properties", ignoreResourceNotFound = true)
public class DataSourceConfig {
@Value("${db.userName}")
String userName;
@Value("${db.password}")
String password;
@Value("${db.driverClass}")
String driverClass;
@Value("${db.url}")
String url;
@Bean
public DruidDataSource getDataSource() {
DruidDataSource dds = new DruidDataSource();
dds.setUsername(userName);
dds.setPassword(password);
dds.setDriverClassName(driverClass);
dds.setUrl(url);
return dds;
}
}
2. @ComponentScan - 扫描四大注解类,将此注解类交给容器管理
默认情况下扫描该@ComponentScan类所处包的所有类
源码分析
3. @EnableAutoConfiguration - 自动筛选注入spring.factories内类对象
作用:加载spring.factories、spring-autoconfigure-metadata.properties这两个文件,读取上面的Key-Value,因为Value是类的全限定名故将其交给Spring容器管理
扫描这里的文件里面是关于类的全限定名 – 实例化交给Spring容器管理
源码分析