spring高度灵活的轻量级框架
1.管理对象的生命周期(IOC)
原来创建对象的方式,这种方式代码之间产生依赖耦合
接口 对象名 = new 实现类();
通过IOC(控制反转),以及结合DI(依赖注入)的方式让spring以BeanFactory(工厂)的模式
管理维护所有配置了bean的对象的生命周期,指一个类的实例的创建,分配给其他对象以及
销毁等操作都交给spring的IOC容器来做。面向接口编程的一种模式,优点是让对象之间
解耦
工作原理:
IOC实现了工厂模式,通过读取applicationContext.xml配置文件中的<bean>标签,注
到IOC容器,注入方式有set,构造注入产生一个BeanFactory,BeanFactory通过
getBean(取得配置的bean的id)方法返回对象
注入方式有:
set注入
构造器注入
动态方法注入
静态工厂注入
2.AOP,面向切面的编程,spring采用AOP思想,面向切面编程,可以实现任意一组通用性业务
,不影响主线业务
使用AOP关注三个点,Aspect切面,Advice通知类型,PointCut切入点
1.提取通用的业务代码,封装成业务组件,这个组件称为切面
2.需要关注组件在什么地方执行,切入点
3.需要关注在什么时候执行,通知类型,五种通知
通知(Advice):指在切面的某个特定的连接点上执行的动作。Spring切面可以应用5中通知:
前置通知(Before):在目标方法或者说连接点被调用前执行的通知;
后置通知(After):指在某个连接点完成后执行的通知;
返回通知(After-returning):指在某个连接点成功执行之后执行的通知;
异常通知(After-throwing):指在方法抛出异常后执行的通知;
环绕通知(Around):指包围一个连接点通知,在被通知的方法调用之前和之后执行自定义的
方法。
设计模式:工厂模式,简单工厂模式
特征:把主动new对象变为通知工厂然后由工厂创建对象并且交给调用者引用
工厂模式实现java三大开发原则:
依赖倒置原则:由主动创建对象变为通知第三方工厂创建并且返回对象实例,减少依赖
依赖抽象而不依赖具体的实现
迪米特法则:尽量减少避免将接触更多的对象,知道的尽可能少
开闭原则:关闭修改,开放扩展
优点:减少对象之间的耦合
配置bean
<bean id="userXm" class="com.seecen.User">
<!--默认调用属性的set方法注入属性值-->
<property name="userName" value="小明"/>
<property name="say" value="哈喽,沃德!"/>
</bean>
id:唯一性的,首字母小写
class:指向类路径
bean中property用来给bean中带有setter方法的属性注入值
3.spring整合其他框架,,可以对hibernate,Struts2,jdbc,mybatis等框架进行整合,
降低了框架之间的耦合度