spring简介
Spring是2003年发布的轻量级Java开发框架,核心是控制反转IOC和面向切面AOP。
相关链接:
- mvn官网地址:https://mvnrepository.com/
- 简明spring教程:http://c.biancheng.net/spring/aop-module.html
控制反转与依赖注入
控制反转(IOC,inversion of control),通过容器来控制对象的创建。
- 读取xml配置文件。
- 通过反射实例化对象,并存入到容器中。
- 获取类的字节码。
Class clazz = Class.forName(“com.walle.dao.impl.EmpDaoImpl”) - 通过字节码实例化对象。
Object obj = clazz.newInstance(); - 将对象放入map集合中。
map.put(“empDao”, obj);
- 获取类的字节码。
- 根据工厂模式getBean方法返回Bean对象。
依赖注入(DI,dependency injection),给对象的属性赋值。依赖注入可以把对象之间的关系整理在一起。
bean管理
Bean(咖啡豆,又称JavaBean),其实就是JAVA程序中的一个个对象。Spring通过一个大工厂实现所有对象的创建和依赖关系维护。spring具有两种bean管理方法。
一、基于xml方式进行bean管理。
- 引入外部bean。
- 引入内部bean。
- 级联引入bean。
- 工厂bean。
二、基于注解方式进行bean管理。
- 引入依赖。
- 开启组件扫描。
- 使用注解定义Bean(IOC)。
- 依赖注入(DI,属性赋值)。
@Autowired 按照类型实现复杂数据类型的属性赋值(常用)。
或
@Autowired
@Qualifier(“userDaoImplA”) 按照名称实现复杂数据类型的属性赋值。
或
@Resource(name=“userDaoImplA”) 按照名称实现复杂数据类型的属性赋值。
@Value(“123”) 普通数据类型的属性赋值。
bean的生命周期。
- 通过构造器创建bean实例。
- 为bean实例属性赋值。
- 初始化bean,调用bean的初始化方法,需配置指定调用的方法。
- 获取bean,容器对象的getBean方法。
- 容器关闭销毁bean,调用销毁方法,需配置指定调用的方法。
第三步初始化bean前后可通过定义BeanProcessor增加两步。
IOC接口
BeanFactory接口,IOC基本容器接口,spring内部接口。
xml中的常用参数:
singleton作用域(scope默认值),spring ioc容器中只存在一个共享的bean实例。
prototype作用域,每一次getBean都产生一个新的bean实例,相当于new操作。
request作用域,每次http请求都会产生新的bean,该bean仅在http request有效。
lazy-init 懒加载,调用getBean再实例化对象。
AOP编程
提供切面编程,方便的对程序进行权限控制、运行监控等功能。