SpringBoot - 注解@SpringBootApplication

51 阅读1分钟

文章目录





[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eCE11MK6-1587879289106)(en-resource://database/18412:1)]

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();
    }

}


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MMIyOJIn-1587879289118)(en-resource://database/18418:1)]

读入自己的配置文件,而没有将数据源配置项写在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类所处包的所有类

源码分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7l2WHjof-1587879289129)(en-resource://database/18420:1)]



[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AYeoqYVp-1587879289134)(en-resource://database/18422:1)]

3. @EnableAutoConfiguration - 自动筛选注入spring.factories内类对象

作用:加载spring.factories、spring-autoconfigure-metadata.properties这两个文件,读取上面的Key-Value,因为Value是类的全限定名故将其交给Spring容器管理

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FF6koZ8w-1587879289139)(en-resource://database/18424:1)]


扫描这里的文件里面是关于类的全限定名 – 实例化交给Spring容器管理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SkdnXDka-1587879289149)(en-resource://database/18416:1)]

源码分析
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6vDoA5p6-1587879289154)(en-resource://database/18430:1)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QTJBBDCj-1587879289157)(en-resource://database/18426:1)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BamNrKw4-1587879289162)(en-resource://database/18428:1)]