Spring-01-概述及IOC理论推导

Spring框架的优点

  1. Spring是一个开源免费的框架 , 容器 .
  2. Spring是一个轻量级的框架 , 非侵入式的 .
  3. 控制反转 IoC , 面向切面 Aop

总的来说Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)。

组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:

  • 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
  • Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。

基本的实现IOC控制反转:我们利用set进行动态值的注入

首先我们创建一个Maven项目:
第一步:在dao层创建一个dao接口

public interface UserDao {
    public void getUser();
}

第二步:创建dao接口的实现类

public class UserDaoImpl implements UserDao {
    public void getUser() {
        System.out.println("默认获取用户的数据");
    }
}

第三步:在service层创建service接口

public interface UserService {
    public void getUser();
}

第四步:创建service接口的实现类

public class UserServiceImpl implements UserService{
    //要想实现dao层的东西
    private UserDao userDao;

    /**
     * 利用set进行动态值的注入
     * @param userDao
     */
    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    public void getUser() {
        userDao.getUser();
    }
}

第五步:测试类

public class MyTest {
    public static void main(String[] args) {
        //用户实际调用的是业务层Service,dao层他们不需要接触
        UserServiceImpl userService = new UserServiceImpl();
        userService.setUserDao(new UserDaoImpl());
        userService.getUser();
    }
}

这个例子可以知道,当我们service层调用dao层的方法的时候。用我们以前的方法,把dao层的实现类new到service实现类里面,进而调用dao层的方法,现在我们用set进行动态值的注入。

上一篇:Spring框架怎样实现依赖注入?


下一篇:Spring Boot整合 Jpa