20200910--Spring配置

1. 别名

 

 

2. bean的配置

别名的第二种,可支持多个别名,空格,逗号,分号,都可以

 

3. 导入

一般用于团队开发使用,可将多个配置文件导入,合并为一个

applicationcontext.xml

 4. 依赖注入

4.1 构造器注入

4.2 setter注入【重点】

依赖:bean对象的创建依赖于容器

注入:bean对象中的所有属性由容器来注入

4.3 其他方式注入

5. bean的作用域

1. singleton单例模式

spring默认机制,get的时候都是一个实例对象

 不会浪费资源,但是并发的时候会有问题,单线程使用

2. prototype原型模式

每次从容器中get的时候,都会产生一个新对象

 浪费资源,多线程使用

3. request,session,application只在web开发中使用

 6. bean的自动装配

自动装配是spring满足bean依赖的一种方式

spring会在上下文中自动寻找bean,并给bean装配属性

spring有三种方式装配:

1. 在xml中显式配置

2. 在java中显式配置

3. 隐式自动装配--重要

1. byName自动装配

会自动在容器上下文中查找和自己对象set方法后面的值对应的beanid,保证所有bean的id唯一,并且要保障这个id和自动注入属性的set方法的值一致

2. byType

会自动在容器上下文中查找和自己对象set方法后面的值类型对应的beanid,保证类型全局唯一,bean id不用命名就可以装配

保证bean的class唯一,并且bean和自动注入的属性的类型一致

3. 使用注解自动装配

使用注解须知:

3.1 导入约束

3.2 配置注解的支持

 3.3 @Autowired 直接在属性上是使用即可,此时可忽略set方法(前提是这个自动装配的属性在IOC-spring容器中存在,且符合名字byname)

也可在set方法中使用

 

 科普:

@nullable 标记了这个注解,说明这个字段可以为null

@Autowired(required=false) 说明这个对象可以为null,否则不允许为空

@Qualified  通过它来显式的指定

如果自动装配无法通过一个注解(@Autowired)完成的时候,可以使用@Qualifier(value="xxx")指定一个唯一的bean对象注入

 

 @Resource注解  java装配

 @Resource和@Autowired的区别

都可以自动装配,都可以放在属性字段上

@autowired是通过bytype的方式实现,必须要求这个对象存在,不然就空指针了【常用】

@Resource是通过byname的方式实现, 如果找不到名字,则通过bytype实现,都找不到的情况下就报错【常用】

执行顺序不同,@autowired是通过bytype的方式实现 @Resource是通过byname的方式实现

原文地址:https://www.cnblogs.com/vivian-xiaoyun/p/13651826.html