# spring-ioc **Repository Path**: java-lesson/spring-ioc ## Basic Information - **Project Name**: spring-ioc - **Description**: No description available - **Primary Language**: Java - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-02 - **Last Updated**: 2026-04-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # spring-ioc Spring IoC 容器实现示例项目 ## 项目简介 本项目演示了 Spring 框架 IoC(控制反转)和 DI(依赖注入)的两种配置方式: 1. **注解方式** - 使用 `@Configuration`、`@ComponentScan`、`@Autowired` 等注解进行配置 2. **声明式方式** - 使用 XML 配置文件(`applicationContext.xml`)进行 Bean 管理 ## 项目结构 ``` src/main/java/com/example/ioc/ ├── annotation/ # 注解方式配置 │ ├── config/ │ │ └── AppConfig.java │ ├── controller/ │ │ └── UserController.java │ ├── dao/ │ │ └── UserDao.java │ ├── entity/ │ │ └── User.java │ └── service/ │ └── UserService.java │ └── declarative/ # 声明式(XML)方式配置 ├── controller/ │ └── UserController.java ├── dao/ │ └── UserDao.java ├── entity/ │ └── User.java └── service/ └── UserService.java ``` ## 技术栈 - Java - Spring Framework ## 快速开始 ### 编译项目 ```bash mvn clean compile ``` ### 运行示例 **注解方式:** ```bash mvn exec:java -Dexec.mainClass="com.example.ioc.annotation.Application" ``` **声明式方式:** ```bash mvn exec:java -Dexec.mainClass="com.example.ioc.declarative.Application" ``` ## 功能说明 项目实现了基本的用户管理功能: | 操作 | 说明 | |------|------| | 注册用户 | 创建新用户并保存 | | 删除用户 | 根据 ID 删除用户 | | 更新用户 | 修改用户信息 | | 查询单个用户 | 根据 ID 获取用户 | | 用户列表 | 获取所有用户 | ## 依赖注入方式 ### 注解方式 通过 `@Autowired` 注解自动注入依赖: ```java @Autowired private UserService userService; ``` ### 声明式方式 通过 setter 方法注入依赖: ```java public void setUserService(UserService userService) { this.userService = userService; } ``` 并在 `applicationContext.xml` 中配置: ```xml ``` 这样,Spring 容器在启动时会自动创建这些 Bean,并完成依赖注入。