Bean的作用域
单例模式(Spring默认机制)
原型模式(每次容器中get的时候,都会产生一个对象!)
3.request,session,application,这些只能在web开发中使用到
Bean的自动装配
byName和byType自动装配:
ByName:需要保证bean的id唯一
byType:需要保证bean的class唯一
使用注解的自动装配
Spring2.5之后就支持注解配置
导入约束:
<?xml version="1.0" encoding="UTF-8"?>https://www.springframework.org/schema/context/spring-context.xsd">
配置注解的支持:context:annotation-config/(千万别忘了)
@Autowired
将@Autowired放在属性上,相当于xml配置中的byType,此时实际上可以省略set方法
将@Autowired放在set方法上,相当于xml配置的byName
@Autowired的required属性
如果@Autowired自动装配的环境比较复杂,自动装配无法通过一个注解【@Autowired】完成的时候,可以使用@Qualifier(value=xxx)去配和@Autowired的使用,指定唯一的bean;
@Nullable 字段标记了这个注解,说明这个字段可以为null;
另一个自动装配注解@Resource
@Resource和@Autowired 的区别
1.都是自动装配的,都可以放在属性字段上
2.@Autowired放在属性相当于byType,放在set方法上相当byName;
3.@Resource默认通过byName的方式实现,如果找不到名字,则通过byType实现!如果两个都找不到的情况下,就会报错!
@Scope(“singleton”)
总结:
Xml 于注解
Xml更加万能,适用于任何场合!维护方便
注解 维护复杂
Xml于注解的最佳实践
Xml用来管理bean
注解只负责完成属性的注入
注意:
JavaConfig(纯Java的配置方式,这种配置方式在Spring boot中随处可见)