当前位置: 首页 > article >正文

为什么使用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) 导入了自动配置选择器类,该类会加载相应的自动配置类,不同的自动配置类完成对应的自动装配功能。

所以无需自己再配置。


http://www.kler.cn/a/535047.html

相关文章:

  • CommonAPI学习笔记-2
  • 实时波形与频谱分析———傅立叶变换
  • 音频录制一般在什么情况下会选择保存为PCM?什么情况会选择保存为WAV?
  • 数据库开发常识(10.6)——SQL性能判断标准及索引误区(1)
  • Vue Dom截图插件,截图转Base64 html2canvas
  • Java知识速记:Lambda表达式
  • 变压器-000000
  • Android性能调优之需要掌握Dalvik和ART的知识
  • win编译openssl
  • 前部分知识复习05
  • 机器学习大模型问题记录
  • ESP-Skainet智能语音助手,ESP32-S3物联网方案,设备高效语音交互
  • 《图解设计模式》笔记(五)一致性
  • nuxt3中使用useFetch请求刷新不返回数据或返回html结构问题解决-完整nuxt3useFetchtch请求封装
  • [NKU]C++安装环境 VScode
  • C++的 I/O 流
  • CentOS 6.5编译Rsyslog 8.1903.0
  • web3.0技术
  • 计算机组成与接口
  • 天童教育:帮助孩子建立稳定的自信心
  • 如何从0开始做自动化测试?
  • 深度学习系列--03.激活函数
  • Three.js实现炫酷图片粒子化效果:从聚合到扩散的动态演变
  • SystemVerilog系统函数之$system详细使用指南与举例
  • DeepSeek核心关键技术 (冷启动,拒绝采样,蒸馏,多头潜注意力,MoE等) 解读
  • 【Axure高保真原型】中继器表格控制动态面板