spring 的 IOC和AOP

Spring IOC:

public class usersevice{

public Userdao userdao = new UserDaoImpl();//非IOC

public UserDao userdao;                           //IOC

public void set(Uerdao userdao){

     this.userDao = userdao;

}

}

我们在非IOC应用中使用userdao,是由自己主动来new一个实例。而IOC则是由外部容器在初始化的时候帮你注入userdao的实例。管理和维护这个userDao实例的权限交给了spring容器。这就是控制反转。

IOC就是应用本身不依赖对象的创建和维护,而这些工作交给IOC容器来做,这样就把应用程序和对象解耦,控制权交给容器。

AOP:面向切面编程,就是把各个模块需要用到相同的业务逻辑抽出来。然后封装成一个面。然后可以很灵活的切入到你的模块当中去。这个切入就用到了JDK的动态代理,三个重要概念,首先是目标对象,即需要切入的对象,然后是切入点,即哪些方法需要切入,然后是切入后做什么,即业务逻辑。

日志、异常的处理、

对于异常处理,日志功能,权限的检查,事务等都是贯穿到各个模块之中,因此进行AOP.

转至:http://blog.sina.com.cn/s/blog_87c51db10101339r.html

原文地址:https://www.cnblogs.com/badoumi/p/5295045.html