SpringBoot2学习笔记

SpringBoot2学习笔记 目标:掌控雷电之人,而非锤子之神!

容器功能

组件添加

1.@Configuration

  • 基本使用

  • Full模式与Lite模式

    • 示例
    • 最佳实战
      • 配置 类组件之间无依赖关系用Lite模式加速容器启动过程,减少判断
      • x配置类组件之间有依赖关系,方***被调用得到之前单实例组件,用Full模式

Full(proxyBeanMethods = true)、【保证每个@Bean方法被调用多少次返回的组件都是单实例的】[[[[[每次给的是同一个pet,默认是Full模式

Lite(proxyBeanMethods = false)【每个@Bean方法被调用多少次返回的组件都是新创建的】[[[[每次给的是新的pet

组件依赖必须使用Full模式默认。其他默认是否Lite模式

2.@Conditional

条件注解

@ConditionalOnBean(name = "name")

当容器中有名字叫name的组件的时候,下面这堆代码才生效

3.@ImportResources

@ImportResources("classpath:beans.xml")

//导入spring的配置文件的方式

@Bean是给容器加东西的

配置绑定

1.@ConfigurationProperties

注解,配置属性

@Component //只有在容器中的组件才会拥有容器提供的功能

@ConfigurationProperties(prefix = "mycar")

与核心配置文件中mycar为前缀的值们进行绑定

@Autowired // 自动注入,把容器中的Car返回过来

Car car

@RequestMapping("/car") //处理一个请求

在容器里加这句注解

@EnableConfigurationProperties(Car.class)

可以把car这个组件注册到容器里

====

在car.class里加这句注解

@Component

也可以

自动配置

1.@SpringBootApplication

@SpringBootApplication
等同于
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.atguigu.boot")

@SpringBootConfiguration

@Configuration代表当前是一个配置类

@ComponentScan("com.atguigu.boot")

指定要扫描的包

@EnableAutoConfiguration

@AutoConfigurationPackage //自动配置包,将指定 (MainApplication)包下的所有组件导入进来
@Import(AutoConfigurationImportSelector.class)//虽然130个场景所需要的配置都会默认加载,但是是按条件装配规则@Conditional 按需分配

AutoConfigurationImportSelector.class:::::::

讲自动配置源码了,听不懂

注解+映射+设计模式

分析哪些生效哪些不是生效,是怎么工作的

例:

spring.aop

,导(加载)进来了,走@ConditionalOnProperty,看配置文件中是否存在spring.aop,如果存在,有auto这个配置,并且值是true,那它就往下执行,如果没有值(没有配),matchIfMissing=true默认是true

往下执行了还有判断,如果不满足不生效

springMVC的核心:DispatcherServlet

首先,@Bean给容器中注册这个组件,然后,new一个DispatcherServlet,里面把东西设置好后返回它

springMVC文件传输解析器 MultipartResolver

当容器中有这个类型的组件,却没有这个名字的组件,就把你名字改成我的,防止用户配置的文件上传解析器名字不符合规范

SpringBoot默认会在底层配置好所有的组件,但是如果用户配置了,会以用户优先

自动配置总结

1.SpringBoot先加载所有的自动配置类, XXXXXAutoConfiguration

2.每个自动配置类按照条件进行生效,默认都会绑定配置文件指定的值。XXXXProperties和配置文件进行了绑定

3.生效的配置类就会给容器中装配很多组件

4.只要容器中有这些组件,相当于这些功能就有了

5.定制化配置

​ 5.1用户直接自己@Bean替换底层的组件(整个组件的修改)

​ 5.2用户去看这个组件是获取的配置文件什么值就去修改(局部改值)

XXXXAutoConfiguration ---> 组件 ---> XXXXProperties里面拿值 ---->application.properties(配置文件)

会改SpringBoot的配置文件了就能修改场景配置

1.要么看文档

2.要么查底层,看跟哪个Properties进行绑定,如缓存

@EnableConfigurationProperties(CacheProperties.class)

点进CacheProperties.class看到

@ConfigurationProperties(prefix = "Spring.cache")

prefix就是以什么为开头,,

所以在配置文件里就能写

spring.cache.什么东西,一句话的事

面向配置编程哈哈哈

最佳实践

1.引入场景依赖

using-boot-starter

2.修改场景依赖

​ 2.1参照文档修改配置项

​ 2.2自定义加入或者替换组件

​ @Bean

​ @Component

​ 2.3自定义器 XXXXCustomizer

Lomboc简化开发

双引号里的\n无效,单引号里的\n会生效

Web开发

1SpringMVC自动配置

2简单功能分析

3请求参数处理

4数据响应于内容协调

5视图解析与模板引擎

6拦截器

7跨域

8异常处理

9原生Servlet组件

10嵌入式Web容器

11定制化原理

全部评论
本笔记用于个人跟随B站网课学习记录,如有问题欢迎讨论~ 附网课地址:https://www.bilibili.com/video/BV19K4y1L7MT
点赞 回复 分享
发布于 2022-04-27 17:03

相关推荐

01-15 13:52
已编辑
河南大学 Java
六年要多久:标准头像,不吃香菜😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务