java 中依赖注入框架提供了一种方式,可以在外部将依赖项注入到类中,而无需类自行创建。常见的 java 中 di 框架包括:spring frameworkgoogle guicedaggerhk2

Java 中依赖注入的框架
简介
依赖注入 (DI) 是一种设计模式,它允许我们从外部将依赖项注入到类中,而不是由类自己创建。DI 框架为我们提供了管理依赖关系并将其注入到类中的功能。
立即学习“Java免费学习笔记(深入)”;
Java 中的 DI 框架
Java 中有许多流行的 DI 框架,包括:
- Spring Framework
- Google Guice
- Dagger
- HK2
Spring Framework
Spring Framework 是 Java 中最流行的 DI 框架。它提供了一个全面的功能集,包括:
- 依赖项注入
- 面向方面编程 (AOP)
- 数据访问
- Web 开发
@Autowired
private UserService userService;
public void run() {
userService.createUser();
}Google Guice
Google Guice 是一个轻量级 DI 框架。它具有以下特点:
JTBC CMS(5.0) 是一款基于PHP和MySQL的内容管理系统原生全栈开发框架,开源协议为AGPLv3,没有任何附加条款。系统可以通过命令行一键安装,源码方面不基于任何第三方框架,不使用任何脚手架,仅依赖一些常见的第三方类库如图表组件等,您只需要了解最基本的前端知识就能很敏捷的进行二次开发,同时我们对于常见的前端功能做了Web Component方式的封装,即便是您仅了解HTML/CSS也
- 类型安全
- 快速
- 可扩展
@Inject
private UserService userService;
public void run() {
userService.createUser();
}Dagger
Dagger 是一个由 Square 开发的 DI 框架。它强调:
- 正确性
- 编译时错误检测
- 可测试性
@Inject
public MyService(UserService userService) {
this.userService = userService;
}
public void run() {
userService.createUser();
}HK2
HK2 是一个由 JSR-330 规范开发的 DI 框架。它提供了:
- 标准化
- 可移植性
- 扩展性
@Inject
private UserService userService;
public void run() {
userService.createUser();
}实战案例
考虑一个简单的用户服务,需要一个数据访问对象 (DAO) 来从数据库中创建用户。我们可以使用 Spring Framework 来注入 DAO。
UserRepository.java
public interface UserRepository {
void createUser(User user);
}UserService.java
public class UserService {
private UserRepository userRepository;
public UserService(UserRepository userRepository) {
this.userRepository = userRepository;
}
public void createUser(User user) {
userRepository.createUser(user);
}
}Application.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}在 Application.java 中,我们注释了 UserService,让 Spring Framework 可以自动注入 UserRepository。










