spring学习——概念与控制反转

理念:使现有的技术更加容易使用,整合了现有的技术框架。

官网:https://spring.io/projects/spring-framework#overview
官方下载地址: http://repo.spring.io/release/org/springframework/spring
GitHub:https://github.com/spring-projects/spring-framework
官方文档:https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#spring-core

导入依赖

在maven repository 网站 https://mvnrepository.com/ 搜索spring,找到Spring Web MVC 和Spring JDBC,复制依赖
ps: 直接导webmvc的好处是其他包也会顺带都导入进去。

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.9</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
    <version>5.3.9</version>
</dependency>
优点
  1. 开源免费框架(容器)
  2. 轻量级 非入侵式的框架
  3. 控制反转(IOC) 面向切面编程(AOP)
  4. 支持事务的处理,对框架整合的支持

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

七大模块

在这里插入图片描述

控制反转原型推导
  1. userDao接口
  2. UserDaoImpl实现类(实现Dao中接口里的方法)
  3. UserService业务接口(让用户调用的接口)
  4. UserServiceImpl业务实现类(调用DaoImpl里的方法实现)

用户实际调用的是业务层,无需接触dao层。

如果需求有更改,就需要改动service层的代码,如private UserDao userDao = new UserMysqlImpl(); 当改动多时费时费力。
在这里插入图片描述
小白ps:
private UserDao userDao = new UserDaoImpl();
对于这句代码,就是一个声明,类比对象的实例化,也就是新声明一个Userdao 叫userDao,他可以调用Userdaoimpl中的所有方法。

转换思路:利用set进行动态实现值的注入!
在这里插入图片描述
测试代码

public class MyTest {
    public static void main(String[] args) {
        UserService userService = new UserServiceImpl();

        ((UserServiceImpl) userService).setUserDao(new UserMysqlImpl());
        userService.getUser();
    }
}

使用set注入后,无需每次都修改代码,程序不再具有主动性,而是被动的接受!
这种思想,从本质上解决了问题,程序员无需管理对象的创建,系统的耦合性大大降低,可以更加专注在业务的实现上。这就是IOC的原型。

本质

IoC是Spring框架的核心内容。
控制反转是一种通过描述(XML或注解)或通过第三方去生产或获取特定对象的方式。在Spring中,实现控制反转的是IoC容器,其实现方法是依赖注入(Dependency Injection,DI)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值