为什么使用springboot框架,springboot常用的配置文件,如何读取配置文件中自定义的内容,多环境下如何切换配置文件,包扫描原理,自动装配的原理

1.为什么使用springboot框架

1.创建独立的spring应用程序  

2.嵌入的 Tomcat,无需部署 WAR 文件

3.简化 Maven 配置        pom.xml

4.自动配置 Spring        简化配置内容

5.开箱即用,没有代码生成,也无需 XML 配置。 

6.微服务开发的基础

 2.springboot常用的配置文件

1. properties属性文件

#key=value格式
#设置端口号
server.port=8080
#设置上下文路径 默认/
#server.servlet.context-path=/aaa

2.yml

##格式 key: value
server:
  port: 8088
  servlet:
    context-path: /bbb

3.如何读取配置文件中自定义的内容?

3.1为何需要把自定义的内容放入配置文件中

方便修改。如果写在java代码属于硬编码,不便于维护和修改, 把一些变动的数据写在配置文件中,然后通过java代码读取配置文件。

3.2如何读取springboot配置文件中的内容

1.@ConfigurationProperties(prefix = "")

2. @Value单个读取,@Value它只能读取基本类和字符串类型,无法读取其他类型

4.多环境下如何切换配置文件

4.1遇到的环境

开发环境--->测试环境--->线上环境

 4.2创建多个配置文件

4.3激活相应的配置文件

5.包扫描原理

主函数在运行时加载了使用@SpringBootApplication的类,该注解@SpringBootApplication是一个复合注解。

其中@EnableAutoConfiguration就是开启自动配置的功能。该注解@EnableAutoConfiguration它也是一个复合注解。

其中注解@AutoConfigurationPackage,这个注解完成了包的扫描。 该注解中使用@Import注解导入包扫描的类。

 修改扫描路径,一般不修改

6.springboot自动装配的原理

为什么springboot没有加载前端控制器DispatcherServlet,依然可以完成路径的请求?

protected AutoConfigurationEntry getAutoConfigurationEntry(AnnotationMetadata annotationMetadata) {
        if (!this.isEnabled(annotationMetadata)) {
            return EMPTY_ENTRY;
        } else {
            AnnotationAttributes attributes = this.getAttributes(annotationMetadata);
//获取所有的自动配置类
            List<String> configurations = this.getCandidateConfigurations(annotationMetadata, attributes);
//移除重复的自动配置类
            configurations = this.removeDuplicates(configurations);
//移除人为排除的自动配置类
            Set<String> exclusions = this.getExclusions(annotationMetadata, attributes);
            this.checkExcludedClasses(configurations, exclusions);
            configurations.removeAll(exclusions);
//排除掉为引入相关jar的自动配置类
            configurations = this.getConfigurationClassFilter().filter(configurations);
            this.fireAutoConfigurationImportEvents(configurations, exclusions);
            return new AutoConfigurationEntry(configurations, exclusions);
        }
    }

springboot工程在启动时加载了@SpringBootApplication注解的类,该注解是一个复合注解,其中包含@EnableAutoConfiguration 该注解用于开启自动配置功能。

该注解也是一个复合注解,其中@Import(AutoConfigurationImportSelector.class) 导入了自动配置选择器类,该类会加载相应的自动配置类,不同的自动配置类完成对应的自动装配功能。

所以无需自己再配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值