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如何管理对象依赖关系。

相关推荐
_日拱一卒14 分钟前
LeetCode:994腐烂的橘子
java·数据结构·算法·leetcode·深度优先
隔窗听雨眠20 分钟前
Nginx网关响应慢排查手记
java·服务器·nginx
智慧物业老杨1 小时前
智慧物业合同周期管理系统:从风险预警到智能交接的全流程数智化落地方案
java·人工智能·python
源码宝1 小时前
MES系统源码:Java8 + SpringBoot2.7 + MySQL8 + Redis,后端源码清爽易扩展
java·后端·源码·springboot·mes系统·源码二开·mes源码
JAVA社区1 小时前
Java高级全套教程(十)—— SpringCloudAlibaba超详细实战详解
java·开发语言·spring cloud·面试·职场和发展
金銀銅鐵2 小时前
[Java] 如何理解 class 文件中方法的 descriptor?
java·后端
云烟成雨TD2 小时前
Spring AI Alibaba 1.x 系列【63】AI Agent 长期记忆
java·人工智能·spring
憧憬成为java架构高手的小白2 小时前
苍穹外卖--day09
java·spring boot·百度
学代码的真由酱2 小时前
Java多用户一对一网页聊天室-测试报告
java·开发语言·功能测试·测试
Jasonakeke3 小时前
SpringBoot自动配置原理揭秘
java·spring boot·后端