springBoot
快速开发脚手架, 基于springBoot可以快速开发单个微服务.
约定大于配置.
SpringCloud 是基于 springBoot实现的.
Spring 本身发展到后期, 配置十分繁琐.
Spring 本身有很多javaBean, 原因是来一个需求, 需要重新生成一个 javaBean 去调用。
IoC: 感觉就是使用动态向上转型. 我们不用管理对象的创建了, 系统耦合性大大降低.
接口 -> 实现类. 由用户去创建对象.
使用 Spring 来创建的对象,在 Spring 中, 这些都称为 Bean.
所谓依赖注入有多种方式:
实际上是指通过 Set 方法来注入由Spring创建的对象的属性, 所以如果类本身没有set方法,那么就会报错.
或者通过带参数的构造函数注入
或者通过其他方式
IOC 创建对象方式: Spring 默认使用无参构造方法来创建对象. 也可以通过配置的方式实现有参的构造函数来创建对象.
在配置文件加载的时候,spring 管理的对象已经初始化(即创建了)
关于 Bean 的配置,可以通过 Import 来实现多人配置的文件合并为一个总的, 最后使用时,使用一个总的就可以.
配置比较多的方式, 可以参考官网
命名空间:
c : 对应构造器注入
p: 对应 Set 注入
Bean 的作用域: 重点掌握2种
The Singleton Scope 单例模式
无论从 Spring 拿出多少个对象,只要名字一样,实际上只是拿出相同的对象.
prototype 原型模式, 每次从 spring get 时都会产生新的对象
Bean 的自动装配
现在是手动装配(配置Bean文件), 自动装配,Spring 会自动寻找,并装备Bean的属性.
Spring 3 种装配方式:
1. 在xml 显示配置
2. 在 Java 中显示装配
3. 隐式 自动装配(重要) {ByName, ByType}
ByName : 需要保证所有bean 的 ID 唯一,并且这个bean 需要和自动注入的属性的set方法值一致.
ByType: 需要保证所有bean的class唯一, 并且保证这个bean 需要和自动注入的属性的类型(class)一致.
使用注解实现自动装配 (这种方式好一点)
1. 导入约束, context 约束
2. 配置注解支持.
首先配置文件本身变得清爽了(因为不需要装配,只要定义 Bean 就可以了)
然后在代码中使用注解
@Autowired: 直接在属性上使用, 也可以再 set 方法用. 这种方式是用过 ByName. (按照ByName规则, 名字必须一样) {项目中主要使用的就是这种}
@Qualifier(value="dog222"), 这种显示的指定, 这个类的装配使用的是 Bean dog222.
@Resource 是 Java 自己的注解(不是Spring的)实现方式是,先通过名字查找, 如果名字查找不到再自动通过ByType来查找, 项目中也常用, 但是还是首推@Autowired.