框架学习笔记#Spring IoC与注入方式

主要涉及轻量级控制反转(IoC)和面向切面(AOP)的容器框架。

  • 控制反转达到松耦合的目的。
  • 面向切面允许分离应用的业务逻辑与系统级服务。
  • 包含并管理应用对象的生命周期,从这个意义上是一种容器。
  • 将简单的组件配置、组合成复杂的应用,从这个意义上是一种框架。

系统级服务就是和具体业务无关的服务。无论哪种业务,都可能会使用到系统级服务。
Spring可以单独使用其中的模块,也可以用于SSH、SSM。
框架与类库相比,框架封装了逻辑且高内聚,一般而言专注与一个领域。类库则松散的工具组合,可以通用。


接口

实体将自己提供给外界的一种抽象说明。由内部操作分离出外部沟通的方法。简单而言,接口声明哪些方法对外公开的。接口是可以多重继承的, 接口实现的变动不影响各层调用。
接口的作用在Spring中得到体现。

IOC

控制反转,应用程序本身不负责依赖对象的创建与维护,而是由外部容器负责创建与维护。获得依赖对象的过程被反转了,因而IOC的实现方法之一就是DI(依赖注入)。

框架学习笔记#Spring IoC与注入方式_第1张图片
举例.png

Spring注入

Spring注入是指在启动Spring容器加载bean配置的时候,完成对变量赋值的行为

设值注入

在xml配置文件中:

框架学习笔记#Spring IoC与注入方式_第2张图片
设值注入.png

构造注入

框架学习笔记#Spring IoC与注入方式_第3张图片
构造注入.png

两种注入方法实例如下:

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);
    }
}

你可能感兴趣的:(框架学习笔记#Spring IoC与注入方式)