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