02

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.

 

posted @ 2020-02-19 15:57  神之一招  阅读(155)  评论(0编辑  收藏  举报