主要涉及轻量级控制反转(IoC)和面向切面(AOP)的容器框架。
- 控制反转达到松耦合的目的。
- 面向切面允许分离应用的业务逻辑与系统级服务。
- 包含并管理应用对象的生命周期,从这个意义上是一种容器。
- 将简单的组件配置、组合成复杂的应用,从这个意义上是一种框架。
系统级服务就是和具体业务无关的服务。无论哪种业务,都可能会使用到系统级服务。
Spring可以单独使用其中的模块,也可以用于SSH、SSM。
框架与类库相比,框架封装了逻辑且高内聚,一般而言专注与一个领域。类库则松散的工具组合,可以通用。
接口
实体将自己提供给外界的一种抽象说明。由内部操作分离出外部沟通的方法。简单而言,接口声明哪些方法对外公开的。接口是可以多重继承的, 接口实现的变动不影响各层调用。
接口的作用在Spring中得到体现。
IOC
控制反转,应用程序本身不负责依赖对象的创建与维护,而是由外部容器负责创建与维护。获得依赖对象的过程被反转了,因而IOC的实现方法之一就是DI(依赖注入)。
Spring注入
Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量赋值的行为
设值注入
在xml配置文件中:
构造注入
两种注入方法实例如下:
package pres.edwin.imples.service;
import pres.edwin.imples.DAO.InjectionDAO;
import pres.edwin.interfaces.InjectionServiceInterface;
/**
* Created by Edwin_1993 on 2017/7/10.
*/
public class InjectionService implements InjectionServiceInterface{
private InjectionDAO injectionDAO;
// 设置注入:
public void setInjectionDAO(InjectionDAO injectionDAO) {
this.injectionDAO = injectionDAO;
}
// 构造器注入:
public InjectionService(InjectionDAO injectionDAO){
this.injectionDAO = injectionDAO;
}
@Override
public void save(String arg) {
System.out.println("service receive parameter " + arg);
arg = arg + ":" + arg.hashCode();
injectionDAO.save(arg);
}
}