| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> SpringBoot-组件配置/自动配置原理/Lombok -> 正文阅读 |
|
[Java知识库]SpringBoot-组件配置/自动配置原理/Lombok |
目录 一、SpringBoot的特点1.1 依赖管理? ? ? ? 每个SpringBoot项目的pom.xml中都有这样的参数:
? ? ? ?它的父项目是:
? ? ? ? 这个依赖中几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制。 ? ? ? ? starter场景启动器的格式:
?????????例如下面这个依赖就为我们导入了web相关的各种依赖。我们不需要手动设置版本号,因为父依赖会自动版本仲裁。如果引入了非版本仲裁的jar,则要写版本号。
? ? ? ? ?如果要指定依赖的版本,要在当前项目的pom.xml中写配置参数,例如:
1.2 自动配置? ? ? ? 1.springboot会自动引入Tomcat依赖并配置tomcat服务器,我们自己不用配置。 ? ? ? ? 2.自动配好SpringMVC,配好常用组件。 ? ? ? ? 3.SpringBoot帮我们配置好了所有web开发的常见场景。如字符编码问题、扫包 ? ? ? ? 4.主程序所在包及其下面的所有子包里面的组件都会被默认扫描进来,想要改变扫描路径,在主程序的注解上修改:
????????@SpringBootApplication等同于?
? ? ? ? -每个配置都是有默认值的,最终都映射到各个类上-xxxxProperties ? ? ? ? -这些默认值都绑定在各自的类上,类会在容器中创建对象 ? ? ? ? -按需加载所有自动配置项,因为start太多了,只有引入了某些场景时,这个场景的自动配置才会开启。 ? ? ? ? -自动配置的功能都在 spring-boot-autoconfigure 包里面 二、容器的功能2.1 添加组件? ? ? ? 我们可以手动添加组件: ? ? ? ? -配置类里面使用@Bean标注在方法上给容器注册组件,默认也是单实例的,配置类本身也是组件。 ? ? ? ? -@Configuration的参数设置:proxyBeanMethods:代理bean的方法
? ? ? ? 另外,也可以使用@import注解,让容器创建出组件。默认组件的名字是全类名。
????????@Conditional是条件装配,即满足Conditional指定的条件才进行组件注入。 ? ? ? ? 若加在类上,则满足条件时这个类下面的组件才会创建;若加在方法(组件)上,则满足条件时这个组件才会创建。 2.2原生配置文件引入????????@ImportResource可以引入原生配置文件中的Beans。
2.3 配置绑定? ? ? ? 其实就是把properties中的指定属性读取出来,封装到javaBean中,便于随时使用。 ? ? ? ? 第一步:在application.properties配置文件中设置好Bean的属性参数。
? ? ? ? 第二步:在javabean类上加注解 @ConfigurationProperties(prefix = "xxx")
? ? ? ? 第三步;在配置类上加注解 @EnableConfigurationProperties(xxx.class);或者在javabean类上加@conponent注解,标识为组件
? ? ? ? 这时我们使用@AutoWired注解创建的Car对象就自带上面设置好的属性了。 三、自动配置原理????????引导加载自动配置类: ????????@SpringBootApplication 注解包含以下注解:?
????????**@EnableAutoConfiguration 包含两个注解:
????????SpringBoot默认会在底层配好所有的组件。但是如果用户自己配置了,则以用户的优先:
? ? ? ? 1.?xxxAutoConfiguration --(若满足条件)--> 创建组件 -> xxxxProperties里面拿默认值-- ? ? ? ? 2. --(若用户指定了值)--> application.properties(使用配置文件中的值) 四、Lombok插件4.1简化JavaBean开发? ? ? ? 依赖:
? ? ? ? 使用方式: ? ? ? ? 注解:
4.2 简化日志开发? ? ? ? @slf4j注解
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 13:19:14- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |