AOP是面向切面的编程。意思是,你要写一个服务。可以通过切面帮你形成一个代理。
在你的服务里方法执行前,返回值后,出现异常等情况里插入了一些操作。
怎么实现,其实是偷偷的继承了你的类,重写了你的方法。在调用时,调用的是这个隐藏的子类(代理类)。对你屏蔽了起来。
ioc是控制反转,意思是说,你要实例化一个对象,不是自己new一个。而是从工厂里给你分一个。实例化的过程教给了工厂
di是依赖注入。你可以把数据通过配置文件set到你的实例里(其实还有接口注入,构造器注入)。而不是通过 实例.setxxx()方法来给实例里的成员赋值。
ioc和di的联系就是。
ioc帮你实例化了一个类。但是这个类里的一些成员没有赋值,然后通过di为实例里的成员赋值。
最常见的例子话。
比如你通过ioc管理了一个userDTO。 里面有用户的name成员
class UserDTO{
private String name="";
public setName(String name){
this.name=name;
}
}
UserDTO user = new UserDTO(); (控制反转类似执行这句)
user.setName("凤姐"); (注入类似在执行这句)
在你的服务里方法执行前,返回值后,出现异常等情况里插入了一些操作。
怎么实现,其实是偷偷的继承了你的类,重写了你的方法。在调用时,调用的是这个隐藏的子类(代理类)。对你屏蔽了起来。
ioc是控制反转,意思是说,你要实例化一个对象,不是自己new一个。而是从工厂里给你分一个。实例化的过程教给了工厂
di是依赖注入。你可以把数据通过配置文件set到你的实例里(其实还有接口注入,构造器注入)。而不是通过 实例.setxxx()方法来给实例里的成员赋值。
ioc和di的联系就是。
ioc帮你实例化了一个类。但是这个类里的一些成员没有赋值,然后通过di为实例里的成员赋值。
最常见的例子话。
比如你通过ioc管理了一个userDTO。 里面有用户的name成员
class UserDTO{
private String name="";
public setName(String name){
this.name=name;
}
}
UserDTO user = new UserDTO(); (控制反转类似执行这句)
user.setName("凤姐"); (注入类似在执行这句)