欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 【Spring】idea + maven 从零创建Spring IoC容器示例

【Spring】idea + maven 从零创建Spring IoC容器示例

2025/5/6 23:37:04 来源:https://blog.csdn.net/rulaixiong/article/details/147674311  浏览:    关键词:【Spring】idea + maven 从零创建Spring IoC容器示例

【Spring】idea + maven 从零创建Spring IoC容器示例

        • 1. 环境准备
        • 2. 创建maven项目
        • 3. 添加依赖
        • 4. 创建Java类与接口
          • 4.1 定义接口UserService
          • 4.2 实现接口UserServiceImpl
        • 5. 配置Spring IoC容器
        • 6. 编写主类调用IoC容器
        • 扩展:使用注解方式实现IoC
          • 1. 修改beans.xml
          • 2.使用注解标记Bean
        • 小结:

1. 环境准备

idea编辑器
jdk1.8+
maven

2. 创建maven项目

① 打开IDEA → New Project → Maven → Next
② 填写项目信息:
Groupld:vip.buddha
ArtifactId: spring-ioc-demo
Version: 1.0.0
③ 点击Finish,项目结构如下:

spring-ioc-demo
├── src
│   ├── main
│   │   ├── java
│   │   └── resources
│   └── test
│       └── java
└── pom.xml
3. 添加依赖
<dependencies><!-- Spring 基础依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.39</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.3.39</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>5.3.39</version></dependency><!-- Spring IoC 核心依赖 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.39</version> <!-- 与 Spring 版本一致 --></dependency>
</dependencies>

手动添加完毕依赖,点击idea右侧maven面板的刷新按钮,下载依赖

4. 创建Java类与接口
4.1 定义接口UserService
package vip.buddha.service;public interface UserService {String getUserName();
}
4.2 实现接口UserServiceImpl
package vip.buddha.service;public class UserServiceImpl implements UserService{@Overridepublic String getUserName() {return "buddha";}
}
5. 配置Spring IoC容器

在src/main/resources下创建beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!-- 定义bean --><bean id="userService" class="vip.buddha.service.UserServiceImpl"/>
</beans>
6. 编写主类调用IoC容器
package vip.buddha;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import vip.buddha.service.UserService;public class Main {public static void main(String[] args) {// 1、加载Spring配置文件ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");// 2、从容器中获取beanUserService userService = context.getBean("userService", UserService.class);// 3、调用方法String userName = userService.getUserName();System.out.println(userName);}
}

编写完毕项目结构如下图:

spring-ioc-demo
├── src
│   ├── main
│   │   ├── java
│   │   │   ├── vip.buddha
│   │   │   │   ├── service
│   │   │   │   │   ├── UserService.java
│   │   │   │   │   ├── UserServiceImpl.java
│   │   │   │   ├── Main.java
│   │   └── resources
│   │   │   ├── beans.xml
│   └── test
│       └── java
└── pom.xml
扩展:使用注解方式实现IoC
1. 修改beans.xml

开启组件扫描

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!-- 开启组件扫描 --><context:component-scan base-package="vip.buddha"/>
</beans>
2.使用注解标记Bean
package vip.buddha.service;import org.springframework.stereotype.Component;@Component("userService") // 等价于 <bean id="userService" .../>
public class UserServiceImpl implements UserService{@Overridepublic String getUserName() {return "buddha";}
}
小结:

IoC核心思想:对象的创建和依赖管理由Spring容器负责,而非手动new

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词