Spring学习笔记01—spring基础
一。什么是Spring
Spring是一个开源的控制反转(Inversion of Control)和面向切面(AOP)容器框架。
1。什么是控制反转?
可以先看如下的代码:
public class PersonServiceBean{
private PersonDao personDao = new PersonDaoBean();
public void save(Person person){
this.personDao.save(person);
}
}
** 在这个例子中,personBean是在应用的内部创建和维护的。所谓的控制反转就是,应用本身不负责依赖对象的创建以及维护,依赖对象的创建以及维护是由外部容器负责的。这样,控制权就由应用内部转移到了外部容器,控制权的转移也就是反转。
当我们把依赖对象交给外部容器负责创建,那么PersonServiceBean类就可以改写成如下:
public class PersonServiceBean{
private PersonDao personDao;
//通过构造器的参数,让容器把依赖对象注入进PersonServiceBean,当然也可以使用setter方式注入。
public PersonServiceBean(PersonDao personDao){
this.personDao = personDao;
}
public void save(Person person){
personDao.save(person);
}
}
这里,就不得不说到**依赖注入(Dependency Injection)**这个概念:
** 所谓的依赖注入,就是指,在运行期,由外部容器动态地将依赖对象注入到组件中。
2。什么是AOP?
二。为什么要使用Spring?
** 在项目中引入Spring会有下列好处:
1。降低组件之间的耦合度,实现软件各层之间的解耦。
3。容器提供单例模式支持,开发者不需要再自己编写实现代码。
4。容器提供了AOP技术,利用它可以很容易地实现权限拦截、运行期监控等功能。
5。容器提供的众多辅佐类,使用这些类能够加快应用的开发,比如 JdbcTemplate、 HibernateTemplate等。
6。Spring对于主流的应用框架提供了集成支持,如:集成了Hibernate、JPA、Struts 这样更便于应用的开发。