【1】关于spring中IOC和AOP的理解
IOC总结起来就一句话依赖注入,那么依赖注入是什么?在spring框架出来之前项目的结构大概就是servlet层,service层,dao层。servlet层依赖service,service依赖dao,层层依赖,从上而下的依赖架构具有耦合度高的缺陷,就像一辆汽车,car依赖车身frame,车身依赖轱辘wheel。一旦需要修改wheel的尺寸,那么整个car都得需要改变。而IOC就是采用了一种依赖倒置的原则,将由上而下的依赖方向倒置。
public class Servlet {
Service service;
public Servlet() {
super();
**this.service = new Service()**;
}
public void servlet() {
service.service();
}
}
public class Service {
Dao dao;
public Service() {
super();
**this.dao =new Dao()**;
}
public void service() {
dao.judge();
}
}
public class Dao {
public void judge(){
System.out.println("dao层的方法judge");
}
}
public class Run {
public static void main(String[] args) {
Servlet servlet = new Servlet();
servlet.servlet();
}
}-----------------------------------------------------------------------------------
public class Servlet {
Service service;
public Servlet(Service service) {
super();
**this.service = service**;
}
public void servlet(){
service.service();
}
}
public class Service {
Dao dao;
public Service(Dao dao) {
super();
**this.dao = dao**;
}
public void service(){
dao.judge();
}
}
public class Dao {
public void judge(){
System.out.println("dao层的方法");
}
}
public class Run {
public static void main(String[] args) {
**Dao dao = new Dao();**
** Service service = new Service(dao);**
** Servlet servlet = new Servlet(service);**
** servlet.servlet();**
}
}从上面的两个demo可以看出来,servlet、service分别依赖的service对象和dao对象由开始的程序创建控制变成由Run类创建,此时的Run类就类似于IOC容器,也就是每个组件所依赖的对象由第三方容器创建并管理,使用构造器或者setter方法推送给程序的各个组件,servlet和service只需要被动接受就可以了。

京公网安备 11010502036488号