初学Spring之 IOC 控制反转

Spring 是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架

导入 jar 包:spring-webmvc、spring-jdbc

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.2.0.RELEASE</version>
    </dependency>

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>5.2.0.RELEASE</version>
    </dependency>

SpringBoot:(构建)

1.一个快速开发的脚手架

2.基于 SpringBoot 可以快速开发单个微服务

3.约定大于配置

SpringCloud:(协调)

SpringCloud 是基于 SpringBoot 实现的

dao 层即 Data Access Object

service 层即业务层,在业务层调用 dao 层

使用 set 注入后,程序不再具有主动性,而是变成了被动的接收对象

写个测试类调用 set 方法

用户实际调用的是业务层,dao 层用户不需要接触(程序在 dao 层修改)

即不通过直接访问 dao 层,通过 service 层作为桥梁来调用

UserServiceImpl 类代码:

package com.demo.service;
import com.demo.dao.UserDao;

public class UserServiceImpl implements UserService{

    private UserDao userDao;

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

    @Override
    public void getUser() {
        userDao.getUser(); //业务层调dao层
    }
}

MyTest 类代码:

import com.demo.dao.UserDaoMysqlImpl;
import com.demo.service.UserService;
import com.demo.service.UserServiceImpl;

public class MyTest {
    public static void main(String[] args) {

        /*
        用户实际调用的是业务层,dao层不需要接触
        即不通过直接访问dao层,通过service作为桥梁来调用
         */
        UserService userService = new UserServiceImpl();

        ((UserServiceImpl)userService).setUserDao(new UserDaoMysqlImpl());
        userService.getUser();

    }
}

IOC 控制反转(Inversion of Control),获得依赖对象的方式反转,即把选择权交给用户,其实现方式是依赖注入(Dependency Injection,DI)

(如果不是这种设计思想,主动权在业务层,

private UserDao userDao = new UserDaoImpl(); 每次都要 new 新的 dao 层类,不适用)

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值