Springboot特点
- 约定大于配置
- 能创建独立的Spring应用程序
- 自动嵌入Tomcat等
- 允许通过Maven来根据获取starte
- 对xml没有要求配置
全注解下的Spring IOC (控制反转)
Spring把每一个需要管理的对象称为Spring Bean,IOC容器负责管理这些Bean
一丶BeanFactory接口
Sping ioc顶级接口BeanFactory里面有一些getBean方法获取Bean可以通过参数不同获取不同Bean可以判断Bean是否为单例模式(isSingleton)或者原型模式(isPrototype)可以通过getType方法获取Bean
二丶ApplicationContext接口
- MessageSource(消息国际化)
- EnvironmentCapable(环境可配置)
- ApplicationEventPublisher(应用事件发布接口)
- ResourcePatternResolver(资源模式解析接口)
三丶如何装配Bean到IOC容器
- 通过Xml文件装入
- 通过配置文件装入@Bean(三方Bean比如数据库之类的)
- 注解方式装配
四丶依赖注入
- 注解注入:@Autowired(常用) @Primary(修改优先权注入)@Qualifier("value") 只能用于IOC容器,非IOC容器会出现空指针异常,而且默认是非final的,容易出现循环依赖问题
-
.构造器注入:
final SysUserService sysUserService; public SysUserController(SysUserService sysUserService) { this.sysUserService = sysUserService; }
优点:通用性强,不受IOC容器的限制,能保证注入的类不为空,在代码中能一眼就能看出当前类需要哪些类才能工作。
缺点:多个注入会显得代码非常繁琐,且多个注入不符合单一设计的思想,一旦使用了构造方法注入,那么默认的构造方法就无法使用 -
Set方法注入:
优点:对于循环依赖问题免疫
缺点:不能将对象设置为final