1.Spring框架
Spring框架的成功来源于理念,而不是技术本身,它的理念包括IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)
1.1 Spring IoC
Ioc是一个容器,在Spring中,它会认为一切Java资源都是Java Bean,容器的目标就是管理这些Bean和它们之间的关系。
Spring IoC 管理对象和其依赖关系采用的不是人为的主动创建,而是由Spring IoC自己通过描述创建的,也就是说Spring是依靠描述来完成对象的创建及其依赖关系的。
在Spring IoC中,所有类的创建、销毁都由Spring来控制,也就是说控制对象生命周期的不再是引用他的对象,而是Spring。你不需要去找资源,只要向Spring IoC容器描述所需资源,那么Spring IoC会自己找到你所需要的资源,这样Bean之间的依赖关系解耦了。
好处,接口不再依赖于某个实现类,需要使用某个实现类时我们通过配置信息就可以完成了。
举例:接口Socket,其中有两个方法,m1()和m2()。而该接口的实现类有两个,socketImpl1、socketImpl2,在spring的xml配置中配置
<bean id="socket1",class="com.xxx.socketImpl1"/>
<bean id="socket2",class="com.xxx.socketImpl2"/>
那么当你想用socketImpl1实现类中的m1()方法的时候,不需要new了,直接获取bean
ApplicationContext ctx=new ClassPathXmlApplicationContext(spring.xml);
Socket socket=(Socket)ctx.getBean("socket1");
socket.m1();
1.2 Spring AOP
AOP是通过动态代理模式,来管控各个对象操作的切面环境,管理包括日志、数据库事务等操作,让我们拥有在反射原有对象方法之前正常返回、异常返回事后插入自己的逻辑代码的能力,有时候甚至取代原有方法。在一些常用的流程中,比如数据库事务,AOP会提供默认的实现逻辑,也会提供一些简单的配置,程序员能够方便的修改默认的实现,达到符合真实应用的效果,大大降低开发的工作量,提高代码的可用性和可维护性,将开发集中在业务逻辑上。
关于AOP的具体应用将在以后的学习记录中体现。