java demo依赖反转
时间: 2024-09-03 15:00:25 浏览: 107
note笔记java demo
Java中的依赖注入(Dependency Injection, DI)是一种设计模式,它强调将依赖的对象通过外部提供而不是内部创建,目的是解耦组件之间的相互依赖。在Spring框架中,常见的DI实践就是"依赖反转原则"(Inversion of Control, IoC),即控制权由被调用者转移到调用者。
一个简单的Java DI示例通常会包含以下几个步骤:
1. 定义接口或抽象类:比如`UserService`,表示需要依赖的服务。
```java
public interface UserService {
void createUser();
}
```
2. 创建具体的实现类:如`SqlBasedUserService`。
```java
@Service
public class SqlBasedUserService implements UserService {
private final UserRepository userRepository;
public SqlBasedUserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
@Override
public void createUser() {
// 使用userRepository执行操作...
}
}
```
3. 配置依赖:在Spring配置文件或注解中,使用`@Autowired`或`@Qualifier`指定如何获取和服务。
```xml
<bean id="sqlUserService" class="com.example.SqlBasedUserService">
<constructor-arg ref="userRepository"/>
</bean>
```
或者使用Java注解:
```java
@Autowired
private UserService userService; // Spring会自动查找并注入实现了UserService的bean
// 或更精确地指定特定实现:
@Autowired
@Qualifier("sqlUserService")
private UserService sqlUserService;
```
4. 使用服务:在需要的地方注入依赖即可,无需关心依赖的具体实现细节。
```java
@Service
public class UserController {
private final UserService userService;
@Autowired
public UserController(UserService userService) {
this.userService = userService;
}
public void createAccount() {
userService.createUser();
}
}
```
阅读全文