原创! 关于Spring框架的一些杂谈.

众所周知, Spring框架在SSH分布式开发中占着举足轻重的作用, 他实现了对象之间的解耦合, 大大加强了软件的二次开发性能.

Spring最显著的特点就是IOC和AOP, 也就是我们常说的"控制反转"和"切面编程".

IOC控制反转意为: 把原本应用本身依赖的对象的创建和维护, 转移给Spring容器, 也就是所谓的控制权的转移.

举个例子说明:

在业务层org.owlet.service包中有一个接口UserService, 而在org.owlet.service.impl中分别有UserServiceImpl和UserServiceImpl2两个类, 这两个类分别用不同的技术实现该接口, 然而调用该业务层的应用类, 都会这么写UserService service = new UserServiceImpl(); / UserServiceImpl2(); 如果每个应用类都这么编程的话, 就大大加强了工程项目的耦合度, 使得工程二次开发的时候如果转型技术, 就会出现大尺度修改代码的出现, 而且这样一不小心就有遗漏.

而Spring则提供了控制反转技术, 大大降低项目耦合度, 使得这种情况迎刃而解, 这种技术主要是将调用UserServiceImpl / UserServiceImpl2的应用类的new方法去掉, 只写一个UserService的空引用, 由Spring容器来管理UserServiceImpl和UserServiceImpl2的创建和维护, 使得Spring容器为依赖注入对象决定所注入的具体是哪一类, 这样只要是改Spring容器便可以实现工程项目的技术转型.

AOP切面编程指的是Spring框架的另一项技术, 之所以叫切面, 是指Spring把信息流形象的比作一条管道, 而AOP技术这是这条管道的一个切面, 使得Spring框架能过滤分流信息流里面的技术, 使得应用类能对信息流里面的技术按照AOP切面条件, 做不同的信息处理. 最经典的案例便是权限管理的实现, 对不同权限实行不同的处理.

扫描二维码关注公众号,回复: 831034 查看本文章

AOP切面编程在切面这个点调用方法的时候又分别有前置通知(@Before), 后置通知(@AfterReturning), 例外通知(@AfterThrowing), 最终通知(@After), 环绕通知(@Around). 前置通知在调用方法前做处理, 后置通知则是在调用方法后, 例外通知在方法抛出异常的时候做处理, 而最终通知是无论如何, 在方法结束后都会做出处理, 具体如下代码所示:

try
{
        // 前置通知@Before
        method();
        // 后置通知@AfterReturning
}
catch(Exception e)
{
        // 例外通知@AfterThrowing
}
finally
{
        // 最终通知@After
}

其中method()就是切面点所要调用的方法. 而环绕通知可以说事环绕着整个被调用的方法的始末, 可以说环绕通知是其他四种通知的结合.

猜你喜欢

转载自chenhaoxiaoowlet.iteye.com/blog/1057316