Spring IoC入门实战:XML与注解双解

实现Spring IoC入门案例的Java EE代码

以下是一个简单的Spring IoC入门案例,展示如何使用Spring框架的依赖注入功能。

1. 创建Maven项目并添加依赖

pom.xml文件中添加Spring核心依赖:

XML 复制代码
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.3.18</version>
</dependency>

2. 创建业务接口和实现类

定义一个简单的服务接口:

java 复制代码
public interface UserService {
    void addUser();
}

创建接口的实现类:

java 复制代码
public class UserServiceImpl implements UserService {
    @Override
    public void addUser() {
        System.out.println("添加用户成功");
    }
}

3. 配置Spring容器

创建applicationContext.xml配置文件:

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/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="userService" class="com.example.UserServiceImpl"/>
</beans>

4. 测试IoC容器

编写测试类从容器获取Bean:

java 复制代码
public class IoCTest {
    public static void main(String[] args) {
        // 加载Spring配置文件
        ApplicationContext context = 
            new ClassPathXmlApplicationContext("applicationContext.xml");
        
        // 从容器获取Bean
        UserService userService = (UserService) context.getBean("userService");
        
        // 调用方法
        userService.addUser();
    }
}

5. 使用注解方式实现IoC

启用组件扫描:

XML 复制代码
<context:component-scan base-package="com.example"/>

在实现类上添加注解:

java 复制代码
@Service
public class UserServiceImpl implements UserService {
    @Override
    public void addUser() {
        System.out.println("注解方式添加用户成功");
    }
}

6. 测试注解配置

修改测试类:

java 复制代码
public class AnnotationTest {
    public static void main(String[] args) {
        ApplicationContext context = 
            new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService = context.getBean(UserService.class);
        userService.addUser();
    }
}

这个案例展示了Spring IoC容器的基本用法,包括XML配置和注解配置两种方式。通过这个案例可以理解Spring如何管理对象依赖关系。

相关推荐
虹科网络安全1 分钟前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
axng pmje26 分钟前
Java语法进阶
java·开发语言·jvm
rKWP8gKv738 分钟前
Java微服务性能监控:Prometheus与Grafana集成方案
java·微服务·prometheus
老前端的功夫40 分钟前
【Java从入门到入土】28:Stream API:告别for循环的新时代
java·开发语言·python
qq_4352879241 分钟前
第9章 夸父逐日与后羿射日:死循环与进程终止?十个太阳同时值班的并行冲突
java·开发语言·git·死循环·进程终止·并行冲突·夸父逐日
小江的记录本43 分钟前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
yaoxin5211231 小时前
397. Java 文件操作基础 - 创建常规文件与临时文件
java·开发语言·python
极客先躯3 小时前
高级java每日一道面试题-2025年11月24日-容器与虚拟化题[Dockerj]-runc 的作用是什么?
java·oci 的命令行工具·最小可用·无守护进程·完全标准·创建容器的核心流程·runc 核心职责思维导图
用户60648767188963 小时前
AI 抢不走的技能:用 Claude API 构建自动化工作流实战
java
我命由我123453 小时前
Kotlin 开发 - lateinit 关键字
android·java·开发语言·kotlin·android studio·android-studio·android runtime