Java 自定义Spring框架以及Spring框架的基本使用

网友投稿 247 2022-12-01

Java 自定义Spring框架以及Spring框架的基本使用

从现在开始,大家可以跟随着我的脚步来自定义一个属于自己的Spring框架。但是,在学习自定义Spring框架之前,我们得先来回顾一下Spring框架的基本使用。知晓了Spring框架的基本使用之后,我们将会在此基础上分析Spring的核心,即IoC,最后我们会对该核心进行一个模拟。

相信大家都使用过Spring框架,现在恐怕是无人不知Spring了吧!我相信你在实际项目开发中肯定用到过它,一般在实际项目中用到它的话,都会采用java EE的三层架构,这三层架构是:

数据访问层,也即Dao层

业务逻辑层,也即Service层

控制器层,也即Controller层

下面我们就采用这三层架构来编写我们的代码,以此来回顾一下Spring框架的基本使用。

回顾一下Spring框架的基本使用

首先,使用IDEA来创建一个Maven工程,工程名字你可以取为spring_demo,在该工程中我们就来使用一把Spring。

注意了,在使用Spring框架之前,我们先要做一件事,那就是在Maven工程的pom.xml文件中引入Spring框架的坐标。

org.springframework

spring-context

5.3.9

然后,根据Java EE的三层架构创建好各层对应的包,为了让大家清楚地看到我都创建了哪些包,干脆我把最终Maven工程的结构给大家展示出来吧!

各层对应包创建好之后,接下来我们就要编写各层对应的代码了。

数据访问层

首先,创建数据访问层接口,该接口我们不妨就命名为UserDao。

package com.meimeixia.dao;

/**

* 数据访问层接口

* @author liayun

* @create 2021-09-19 18:17

*/

public interface UserDao {

public void add();

}

然后,创建数据访问层接口的子实现类,该类我们不妨就命名为UserDaoImpl。

package com.meimeixia.dao.impl;

import com.meimeixia.dao.UserDao;

/**

* 数据访问层实现类

* @author liayun

* @create 2021-09-19 18:29

*/

public class UserDaoImpl implements UserDao {

@Override

public void add() {

System.out.println("UserDao...");

}

}

业务逻辑层

首先,创建业务逻辑层接口,该接口我们不妨就命名为UserService。

package com.meimeixia.service;

/**

* 业务逻辑层接口

* @author liayun

* @create 2021-09-19 18:31

*/

public interface UserService {

public void add();

}

然后,创建业务逻辑层接口的子实现类,该类我们不妨就命名为UserServiceImpl。

package com.meimeixia.service.impl;

import com.meimeixia.dao.UserDao;

import com.meimeixia.service.UserService;

/**

* 业务逻辑层实现类

* @author liayun

* @create 2021-09-19 18:37

*/

public class UserServiceImpl implements UserService {

// 因为业务逻辑层是要调用数据访问层中的功能的,所以在这儿我们得声明一个UserDao类型的变量

private UserDao userDao; // 注意了,这儿我们并没有为该变量进行赋值,赋值的操作得交给Spring去做,只是这样做的前提是我们得为该变量提供一个setter方法

public void setUserDao(UserDao userDao) {

this.userDao = userDao;

}

@Override

public void add() {

System.out.println("UserService...");

userDao.add();

}

}

控制器层

首先,编写Spring的配置文件,这里,我们在类路径(在IDEA看来,其实就是src > main > resources目录)下编写了一个名为applicationContext.xml的配置文件。

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd">

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans.xsd">

然后,创建控制器,这里我们就命名为UserController了。注意了,在该控制器中我们是使用main方法来模拟Controller层的。

package com.meimeixia.controller;

import com.meimeixia.service.UserService;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

/**

* @author liayun

* @create 2021-09-19 18:41

*/

public class UserController {

public static void main(String[] args) throws Exception {

// 1. 创建Spring的容器对象

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

// 2. 从容器对象中获取UserService对象

UserService userService = applicationContext.getBean("userService", UserService.class);

// 3. 调用UserService对象的方法进行业务逻辑处理

userService.add();

}

}

以上控制器的代码写完之后,随即我们来做一个测试。运行以上控制器的代码,打印结果如下图所示。

通过上面代码及结果可以看出:

UserService对象是从Spring容器对象中获取到的,也就是UserService对象是交由Spring来进行管理的。

从上面结果中可以看到调用了UserDao对象中的add方法,也就是说UserDao子实现类对象也交由Spring来管理了。

UserService中的userDao变量我们并没有进行赋值,但是可以正常使用,说明Spring已经将UserDao对象赋值给了userDao变量。

相信大家都能看出来,上面三点体现出来了Spring框架两个核心,即IoC(Inversion of Control,控制反转)和DI(Dependency Injection,DI,依赖注入)。

至此,我们就回顾完了Spring框架的基本使用。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:cookie的浏览记录
下一篇:ubuntu18.04安装Docker最简单的方法!
相关文章

 发表评论

暂时没有评论,来抢沙发吧~