# 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,并完成依赖注入。