spring5
孙哥说视频:https://www.bilibili.com/video/BV185411477k?p=166
之前笔记见:孙哥说Spring5 全部更新完毕 完整笔记
第p166后:
第二章、Spring基础注解(2.x)
2、注入相关注解
JDK类型
@Value
1.设置xxx.properties
id = 10
name = suns
2.Spring的工厂读取这个配置文件
<context:property-placeholder location=""/>
3.代码
属性@Value("$key")
-
@Value
-
@PropertySource
1.作用用于替换Spring配置文件中的<context:property-placeholder location=""/>
2.开发步骤:
1、设置xxx.properties
id = 10
name = suns
2.应用@PropertySource
3.代码
属性@Value()
eg:@PropertySource("classpath:/init.properties")
@Value("${name}")
String name
@Value注解使用细节
-
@Value注解不能引用在静态成员变量上
如果应用,赋值(注入)失败
-
@Value注解+Properties这种方式,不能注入集合类型
Spring提供新的配置形式YAML YML(SpringBoot)
3、注解扫描详解
<context:component-scan base-package="com.baizhied"/>
当前包 及其 子包
1.排除方式
2.包含方式
叠加方式可以是相同类型也可以是不同类型的type , 上面只扫描包含type的类型
4.对于注解开发的思考
- 配置互通
- 什么情况下使用注解什么情况下使用配置文件
5.SSM整合开发(半注解开发)
第三章、Spring的高级注解(Spring3.x及以上)
1、配置Bean
2.AnnotationConfigApplicationContext(使用注解方式后的工厂)
-
配置Bean开发的细节分析
基于注解开发使用日志
不能使用Log4j 集成logback
- 引入相关jar
-
引入logback配置文件(logback.xml)
-
@Configuration本质是@Component
2、@Bean注解
-
自定义id值
@Bean(“id”)
-
控制对象创建次数
2、@Bean注解的注入
- 用户自定义类型
jdk类型注入
3、@ComponentScan
排除扫描:
包含:
4、Spring工厂创建对象的多种范式配置方式
1.多种配置方式的应用场景
2.配置优先级
- 解决基于注解进行配置的耦合问题
通过在新建立的AppConfig5上加上@ImportResource来指定配置文件,然后在启动时加入新增的类或使用包的方式确保能被扫描到即可。
5、整合多个配置信息
1、多个配置bean的整合
-
为什么会有多个配置信息
拆分多个配置bean的开发,是一种模块化开发的形式,也体现了面向对象各司其职的设计思想
@Import
1.可以创建对象
2.多配置bean的整合
- 在工厂创建时,指定多个配置Bean的Class对象【了解】
ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig1.class,ApplConfig2.class);
- 跨配置进行注入
2.配置Bean与@Component相关注解的整合
3、配置Bean与配置文件整合
6、配置Bean底层实现原理
1 Spring在配置Bean中加入@Configuration注解后,底层就会通过Cglib的代理方式,来进行对象相关的配置,处理
7、四维一体的开发思想
1.什么是四维一体
Spring开发一个功能的4中形式,虽然开发方式不同,但是最终效果是一样的
1.基于schema
2.基于特定功能注解
3.基于原始bean
4.基于@Bean注解
2.四维一体的开发案例
1.<context:property-placeholder
2.@ProperySource [推荐]
3.<bean id="" class="PropertySourcePlaceholderConfigure"/>
4.@Bean [推荐]
方式一 <context:property-placeholder
方式二,基于注解方式 @ProperySource [推荐]
方式三
方式四 @Bean [推荐]
8、纯注解版 AOP编程
1、搭建环境
1.应用配置Bean
2.注解扫描
2.开发步骤
3.注解AOP细节分析
proxy-target为true时使用Cglib代理,默认是否false(使用JDK代理)
9、纯注解版Spring+MyBatis整合
- 基础配置(配置Bean)
-
编码
1.实体 2.表 3.DAO接口 4.Mapper文件
Resource[]配置多个文件的形式
10、纯注解版事务编程
11、Spring框架中YML的使用
1.什么是YML
2.Properties进行配置问题
1.Properties表达过于繁琐,无法表达数据的内在联系
2.Properties无法表达对象 集合对象
3.YML语法简介
4.Spring与YML集成思路的分析
5.Spring与YML集成编码
- 环境搭建
- 编码
1.准备yml配置文件
2.配置Bean中操作 完成YML读取 与PropertySourcePlaceholderConfigure的创建
3.类 加入@Value注解
6. Spring与YML集成的问题
1.集合处理的问题
SpringEL表达式解决
@Value("#{'${list}'}.split(',')")
2.对象类型的YML进行配置时 过于繁琐
@Value("${account.name}")
SpringBoot的 @ConfigurationProperties 可以解决上面的问题
mg-NYCkbG2H-1610002298307)]
- 编码
1.准备yml配置文件
2.配置Bean中操作 完成YML读取 与PropertySourcePlaceholderConfigure的创建
3.类 加入@Value注解
[外链图片转存中...(img-9ZVc5Uyf-1610002298307)]
#### 6. Spring与YML集成的问题
```markdown
1.集合处理的问题
SpringEL表达式解决
@Value("#{'${list}'}.split(',')")
2.对象类型的YML进行配置时 过于繁琐
@Value("${account.name}")
SpringBoot的 @ConfigurationProperties 可以解决上面的问题