学习之前首先感谢传智播客的老师么,谢谢你们细致的讲解。
1.Spring 是什么?
SPRING 是一个开源的控制反转(Inversion of control,Ioc),面向切面的容器框架。它的主要目的是简化企业开发。
2.什么是控制反转,依赖注入?
首先看一个例子
public class PersonServiceBean{
private PersonDaoBean daobean = new PersonDaoBean();
public void save(Person person){
daobean.save(person);
}
}
PersonServiceBean 是业务层的类,PersonDaoBean 是DAO层的BEAN. 在这个例子中PersonServiceBean 类对DAO层的Bean进行了创建和维护。
所谓控制反转:是应用本身不负责依赖对象的创建和维护。依赖对象的创建及维护由SPRING容器完成。(ejb容器也能完成同样的功能)
依赖注入(Dependency Injection):在运行期,由外部容器动态地将依赖对象注入到组件中。
在这个例子中PersonServiceBean 需要依赖PersonDaoBean 类来完成save方法。按照SPRING控制反转的精神,我们应该考虑怎样在外部创建PersonDaoBean 的实例,于是有了下列的例子。
public class PersonServiceBean{
private PersonDaoBean daobean
//通过构造函数注入,当然也可以使用sett方法进行注入。
public PersonServiceBean(PersonDaoBean daobean){
this.daobean =daobean;
}
public void save(Person person){
daobean.save(person);
}
}
3.为什么使用spring ?
为了使各个层之间更好的解藕。
提供了很好的事务管理服务。
提供了单例模式。
提供了很多的辅助类,dbcptemplate类。
对主流框架提供了支持。