maven 中父项目导入 Springboot 的启动器。然后编写一个主程序打上 SpringBootApplication 注解。通过 run 方法就可以启动。
5. SpringBoot 自动配置原理
首先可以看到启动类上面有一个 SpringBootApplication 注解,点进去之后,又 EnableAutoConfiguration 注解。然后再进去,发现有个 @Import 注解,其导入的是 EnableAutoConfigurationImportSelector 类。再看这个类,他是集成了一个抽象的 AutoConfigutationimportSelector 。再往上就是接口 ImportSelector 。然后如果实现了接口的 selectImport 接口就会将其中的返回的数组全部加载到 Spring 容器中。其中实现的最主要的地方是 getCandidateConfigurations 方法。那个方法内部实现就是回去读取 meta-inf 下的 spring.factories 。所以主要在那里面配置的类就都会被自动加载。
6. SpringBoot 配置文件注入
注入实体类中,实体类可以使用 @ConfigurationProperties(prefix = “person”) 注解。
7. @Value 和 @ConfigurationProperties 比较
8.@PropertySource
加载指定的配置文件。如下,如果不声明的话,将从主配置文件加载。
9.@ImportResource
导入 Spring 的配置文件,让配置文件里面的内容生效;这种方式比如一个类没有使用 @Componet 注解注册进容器,则使用自动装配 autowired 找不到。引入文件后,即可找到。
Spring Boot 里面没有 Spring 的配置文件,我们自己编写的配置文件,也不能自动识别;
想让 Spring 的配置文件生效,加载进来; @**ImportResource** 标注在一个配置类上
10. springboot 的 profile 加载
在配置文件的时候,我们可以建立多个。用 - 进行结尾。通过主配置文件,配置 profiles 的 active 就可以指定加载文件。
在同一个文件中, yml 文件支持文档块的写法,为 — 。
11. SpringBoot 激活指定 profile 的几种方式
第一种:直接在配置文件中通过 active 指定
第二种:通过 java -jar 的参数指定
第三种:通过虚拟机参数
12. SpringBoot 项目内部配置文件加载顺序
顺序如下;
优先级由高到底,高优先级的配置会覆盖低优先级的配置;
SpringBoot 会从这四个位置全部加载主配置文件; ** 互补配置 ** ;
我们还可以通过 spring.config.location 来改变默认的配置文件位置
项目打包好以后,我们可以使用命令行参数的形式,启动项目的时候来指定配置文件的新位置;指定配置文件和默认加载的这些配置文件共同起作用形成互补配置;
13. SpringBoot 外部配置文件加载顺序
这个挺多的,我们就几个重要的。
高优先级的会覆盖低优先级的。
命令行上的参数配置是优先级最高的。
jar 包外的带 profile 的配置文件。
jar 包内的带 profile 的配置文件。
jar 包外的不带 profile 的配置文件。
jar 包内的不带 profile 的配置文件。
14. Springboot 日志关系
SpringBoot 默认使用的 slf4j+logback 。引入 logging-starter 就可以使用。能自动适配其他日志。只需要将日志里面的 commons-logging 移除。就会自动引入其他日志。
使用 LoggerFactory 可以获得 logger 。通过 logger 就可以记录日志。
日志的一些配置
logging.level.com.atguigu=trace 指定打印级别
logging.file=G:/springboot.log 指定日志生成路径
logging.path=/spring/log 指定日志生成相对路径
logging.pattern.console=%d{yyyy-MM-dd} [%thread] %-5level %logger{50} - %msg%n 指定控制台输出格式
logging.pattern.file=%d{yyyy-MM-dd} === [%thread] === %-5level === %logger{50} ==== 指定文件中日志输出格式
15. SpringBoot 如何扩展 SpringMVC 的配置
通过建立自己的类继承 WebMvcConfigurerAdapter ,在类上面打上注解 @Configuration 。然后重写里面的方法即可。容器中的所有的 WebMvcConfigurer 会一起起作用。
如果我们不想使用 mvc 的自动配置,全部使用自己的。可以在配置类上增加注解 @EnableWebMvc 。这个注解可以导入一个 webmvcconfigurationsupport 的类。然后 mvc 的自动配置类上的注解有这么一句话,有一个条件注解,当没有上面那个类的时候,才生效。
16. SpringBoot 如何注册 filter , servlet , listener
编写好一个 servlet 后,声明一个类,返回 ServletRegistrationBean 。通过里面的方法将 servlet 包装一下返回。
编写一个 filter 。通过 FilterRegister 包装。
编写一个 listener ,实现注册 bean 。
Spring全套教学资料
Spring是Java程序员的《葵花宝典》,其中提供的各种大招,能简化我们的开发,大大提升开发效率!目前99%的公司使用了Spring,大家可以去各大招聘网站看一下,Spring算是必备技能,所以一定要掌握。
CodeChina开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频】
目录:
部分内容:
Spring源码
- 第一部分 Spring 概述
- 第二部分 核心思想
- 第三部分 手写实现 IoC 和 AOP(自定义Spring框架)
- 第四部分 Spring IOC 高级应用
基础特性
高级特性 - 第五部分 Spring IOC源码深度剖析
设计优雅
设计模式
注意:原则、方法和技巧 - 第六部分 Spring AOP 应用
声明事务控制 - 第七部分 Spring AOP源码深度剖析
必要的笔记、必要的图、通俗易懂的语言化解知识难点
脚手框架:SpringBoot技术
它的目标是简化Spring应用和服务的创建、开发与部署,简化了配置文件,使用嵌入式web服务器,含有诸多开箱即用的微服务功能,可以和spring cloud联合部署。
Spring Boot的核心思想是约定大于配置,应用只需要很少的配置即可,简化了应用开发模式。
- SpringBoot入门
- 配置文件
- 日志
- Web开发
- Docker
- SpringBoot与数据访问
- 启动配置原理
- 自定义starter
微服务架构:Spring Cloud Alibaba
同 Spring Cloud 一样,Spring Cloud Alibaba 也是一套微服务解决方案,包含开发分布式应用微服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开发分布式应用服务。
- 微服务架构介绍
- Spring Cloud Alibaba介绍
- 微服务环境搭建
- 服务治理
- 服务容错
- 服务网关
- 链路追踪
- ZipKin集成及数据持久化
- 消息驱动
- 短信服务
- Nacos Confifig—服务配置
- Seata—分布式事务
- Dubbo—rpc通信
Spring MVC
目录:
部分内容:
fig—服务配置
- Seata—分布式事务
- Dubbo—rpc通信
[外链图片转存中…(img-EbWjLydc-1630460497662)]
[外链图片转存中…(img-O48tf4y5-1630460497663)]
Spring MVC
目录:
[外链图片转存中…(img-kxBR6ixi-1630460497664)]
[外链图片转存中…(img-m8INrVNu-1630460497664)]
[外链图片转存中…(img-aVZaHMX4-1630460497665)]
部分内容:
[外链图片转存中…(img-h2cvQjIT-1630460497665)]
[外链图片转存中…(img-gVRuUwzK-1630460497666)]