Spring预科

spring预科

spring也是一种框架,mybatis框架是作用于永久层,但是spring是作用于其他的地方的。

spring中文文档

Spring Framework 中文文档 - Core Technologies | Docs4dev

spring的优点

  • spring是一个开源的免费的开源容器
  • spring是一个轻量级的,非入侵的框架
  • spring控制翻转,面向切面编程
  • 支持事务处理(jdbc),对框架整合的支持

spring的依赖

spring需要导两种包:Spring webmvcSpring jdbc

首先Spring webmvc是一个整合了很多spring用到的包

Spring jdbc是用于与mybatis整合是需要的包

1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.15</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.3.15</version>
</dependency>

IOC理论推导

在之前的约我中,如果用户的需求发生了改变,我们就要去修改源代码,但是这种事情处理起来很复杂。如果我们把代码的改变权交给用户,我们就能减少很多的事务。

我们引出下面的实例来解释我们的思想

Dao层结构

由上图我们可以看到 这个抽象结构有两个实现类,但是在service层调用时,我们只需要调用一个

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package service;

import dao.MybatisUserDaoImp;
import dao.UserDao;
import dao.UserDaoImp;

public class UserServiceImp implements UserService{
UserDao userDao = new MybatisUserDaoImp();
//UserDao userDao = new UserDaoImp()
@Override
public void getUser() {
userDao.UserList();
}
}

那么 如果用户需要的是不同的service,我们就需要去调整他的UserDao参数。就要去修改源代码。

改变思路:如果我们把UserDao看作一个参数,然后使用set方法实现赋值,那么用户再有其他的要求时,我们就不需要进行大的改动,只需要用户去按要求赋值即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package service;

import dao.MybatisUserDaoImp;
import dao.UserDao;
import dao.UserDaoImp;

public class UserServiceImp implements UserService{
// UserDao userDao = new MybatisUserDaoImp();
// //UserDao userDao = new UserDaoImp()
private UserDao userDao;

public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}

@Override
public void getUser() {
userDao.UserList();
}
}

此时的Test

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import dao.MybatisUserDaoImp;
import dao.UserDaoImp;
import service.UserServiceImp;

public class MyTest {
public static void main(String[] args) {
UserServiceImp userServiceImp = new UserServiceImp();
userServiceImp.setUserDao(new MybatisUserDaoImp());
userServiceImp.getUser();
userServiceImp.setUserDao(new UserDaoImp());
userServiceImp.getUser();
}
}

通过set方法就能按照用户的要求实现不同的效果

IOC本质

IOC是Spring框架的核心,可以使用xml配置,使用注解配置,也可以不配置。

控制反转是一种通过描述(xml或注解)并通过第三方生产或获取特定对现货的方式。在Spring中实现控制反转的是IOC容器,其实现方法是依赖注入(DI)。

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2023 dwx
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信