Maven与Spring做一个ioc的Demo

本文详细介绍如何在Maven项目中整合Spring框架,包括创建项目、配置依赖、编写Service层接口与实现、配置Spring Bean以及使用JUnit进行测试。通过实例演示了Spring的IOC控制反转原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.创建一个maven项目

在这里插入图片描述
点击other,选中maven项目
在这里插入图片描述
不选择简易创建 一路next 创建之后的目录
在这里插入图片描述
这里要消除这个错误,右键项目名,然后点击 build path 找到 Add Library
点击 Server Runtime 再点击你的服务器 点击finish 就可以消除这个红色感叹号 当然为了测试,我也加入了Junit
在这里插入图片描述
配置 pom.xml文件 在dependency标签中加入如下代码
在这里插入图片描述
点击保存,右下角出现绿色的加载条,说明导入Spring的五个jar包成功 你也可以在下面这个目录中查看
在这里插入图片描述

之后我们需要配置 applicationContext.xml文件 配置文件的路径为 src/main/resources
在这里插入图片描述
这里有个小插曲(我也是新手,这个用作学习)项目下找不到必要的src/main/java 以及
src/test/java

这个时候你需要右键你的项目 点击 build path 找到configure build path 然后点击Source 你会发现项目里有这两个文件夹 不过显示的是missing 把他俩全删掉 然后你再自己创建就好了

在这里插入图片描述
!!!言归正传,现在我们需要配置xml文件了

<?xml version="1.0" encoding="UTF-8"?>
<beans  xsi:schemaLocation="http://www.springframework.org/schema/beans 
						   http://www.springframework.org/schema/beans/spring-beans-4.2.xsd " 
		xmlns="http://www.springframework.org/schema/beans" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
</beans>

这个是我的配置 那些一大堆乱七八糟的是约束 做啥的我现在也不知道 想了解的可以自己百度… 然后回来给我讲 哈哈
之后我做的事情是在 src/main/java下创建了一个包 里面放了一个接口与一个实现类,模拟service层
在这里插入图片描述
接口的代码

package maven_spring_demo3;

public interface UserService {
	public void addUser();
}

实现类的代码

package maven_spring_demo3;

public class UserServiceImpl implements UserService {

	public void addUser() {
		//这里就是做一个简单的演示,所以只让它输出一句话
		System.out.println("hello spring");
		/*这里我为什么要用黑色的呢,因为我点回车不小心点到了、
		 就是回车左边大括号下面的  
		 添加代码段是用三个 ``
		 第二次写,正在慢慢熟悉`*/
	}
	
}

现在有了这些东西,怎么用Spring去调用它呢? 还得回到xml中
我在xml中加入了一个 bean标签 如下图

这个是加完以后的xml文件代码

<?xml version="1.0" encoding="UTF-8"?>
<beans  xsi:schemaLocation="http://www.springframework.org/schema/beans 
						   http://www.springframework.org/schema/beans/spring-beans-4.2.xsd " 
		xmlns="http://www.springframework.org/schema/beans" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
		<bean id="UserServiceImplId"  class="maven_spring_demo3.UserServiceImpl"></bean>
</beans>

可以发现 calss属性中放的是你的类,这里怎么判断他行不行呢,你按住ctrl键,然后左键,如果点的进去你这个类,就没有问题了
之后就是测试了 新建一个测试类 如下图
在这里插入图片描述

package maven_spring_demo3_test;


import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import maven_spring_demo3.UserService;



public class maven_spring_demo3_test {
	@Test
	public void testAddUser() {
		//从spring容器中获得
		String xmlPath="applicationContext.xml";
		ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
		//这里就不需要new它的实现类对象了
		UserService userService = (UserService) applicationContext.getBean("UserServiceImplId");
		userService.addUser();
		
		
	}
}

然后右键方法名 run as -> junit Test
在这里插入图片描述
在这里插入图片描述

最后一点 我对IOC的理解:

Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想
它的作用是不用new对象了,将你设计好的对象交给容器管理,而不是在对象内部直接控制了。
好好的对象说没就没。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值