Spring Boot 中的依赖注入和控制反转
大家好。我使用淘客系统3.0免费搭建优惠券查询和返利机器人,赚取佣金。我也是一名程序员,冬天不穿秋裤,但我需要它们在寒冷中保持优雅。天气!今天我们将讨论Spring Boot 中的依赖注入和控制反转。这两个是Spring框架的核心概念,极大地提高了应用程序的可测试性和可维护性。
1. 依赖注入概述
依赖注入是一种用于实现控制反转(IoC)的设计模式。通过依赖注入,对象通过外部实体(例如框架)提供依赖关系,而不是在内部创建依赖关系。这种模式减少了代码耦合,使代码更易于测试和维护。
1.构造函数注入
构造函数注入是最常用的依赖注入方法。使用构造函数注入,所有依赖项都会在创建对象时传递给对象。
包cn.juwatech.springboot.service;
导入org.springframework.stereotype.Service。
@服务
公共类用户服务{
私有最终UserRepository userRepository;
公共UserService(UserRepository userRepository) {
this.userRepository=用户存储库;
}
公共列表用户getAllUsers() {
返回userRepository.findAll();
}
}
2.注入setter方法
Setter方法注入通过Setter方法传递依赖,适用于可选依赖。
包cn.juwatech.springboot.service;
导入org.springframework.beans.factory.annotation.Autowired。
导入org.springframework.stereotype.Service。
@服务
公共类用户服务{
私有UserRepository userRepository;
@Autowired
公共无效setUserRepository(UserRepository userRepository){
this.userRepository=用户存储库;
}
公共列表用户getAllUsers() {
返回userRepository.findAll();
}
}
3. 现场注入
字段注入是直接在字段上使用@Autowired注解来实现的,虽然方便,但不推荐,因为它违反了单一责任原则和依赖注入的基本概念。
包cn.juwatech.springboot.service;
导入org.springframework.beans.factory.annotation.Autowired。
导入org.springframework.stereotype.Service。
@服务
公共类用户服务{
@Autowired
私有UserRepository userRepository;
公共列表用户getAllUsers() {
返回userRepository.findAll();
}
}
2. 控制反转概述
控制反转(IoC) 是一种设计原则,允许框架通过将控制从应用程序代码转移到框架或容器来管理应用程序依赖项。 Spring框架通过依赖注入来实现IoC。
1.IoC容器
Spring 的IoC 容器是Spring 框架的核心,负责在Spring 应用程序中创建、管理和销毁对象。 IoC容器通过读取配置元数据(例如XML文件和注释)来创建和插入对象。
2.Bean定义
在Spring 应用程序中,所有对象都是由Spring IoC 容器管理的bean。 Bean 可以通过XML 配置文件、注释或Java 配置类来定义。
3. Spring Boot中实现依赖注入和控制反转
Spring Boot简化了配置Spring应用程序的过程,通过自动配置和注解大大减少了手动配置工作量。
1、自动配置
Spring Boot 自动配置会根据类路径中的依赖项、注释和配置文件自动配置Spring beans。例如,Spring Boot自动配置数据源、事务管理器等。
包cn.juwatech.springboot;
导入org.springframework.boot.SpringApplication。
导入org.springframework.boot.autoconfigure.SpringBootApplication。
@SpringBootApplication
公共类SpringBootApplication {
公共静态无效主(字符串[] args){
SpringApplication.run(SpringBootApplication.class, args);
}
}
2.使用注解进行依赖注入
Spring Boot通过注解简化了依赖注入过程。常用的注解有@Autowired、@Service、@Repository、@Controller等。
包cn.juwatech.springboot.repository;
导入cn.juwatech.springboot.model.User。
导入org.springframework.data.jpa.repository.JpaRepository。
导入org.springframework.stereotype.Repository。
@存储库
公共接口UserRepository 扩展JpaRepositoryUser,Long {
}
3.使用@Configuration类定义bean
除了注解和自动配置之外,Spring Boot还支持使用Java配置类定义bean。用@Configuration注解的类可以包含一个或多个用于定义bean的@Bean方法。
包cn.juwatech.springboot.config;
导入org.springframework.context.annotation.Bean。
导入org.springframework.context.annotation.Configuration。
导入org.springframework.jdbc.datasource.DriverManagerDataSource。
导入javax.sql.DataSource;
@作品
公共类数据源配置{
@豆子
公共数据源dataSource() {
DriverManagerDataSource dataSource=new DriverManagerDataSource();
dataSource.setDriverClassName(\’com.mysql.cj.jdbc.Driver\’);
dataSource.setUrl(\’jdbc:mysql://localhost:3306/testdb\’);
dataSource.setUsername(\’root\’);
dataSource.setPassword(\’您的密码\’);
返回数据源。
}
}
4. 依赖注入和控制反转的优点
1、松耦合
通过依赖注入和控制反转,组件之间的依赖关系由容器管理,减少代码耦合,使代码更加模块化,更易于维护。
2. 可测试性
依赖注入允许您通过模拟对象注入依赖项以进行独立的单元测试。
3. 可扩展性
Spring的配置文件和注释允许您轻松添加或更改bean配置,使您的系统更具可扩展性。
5. 总结
Spring Boot 通过简化依赖注入和控制反转的实现,使Spring 应用程序的开发变得更加高效和简单。 Spring Boot 通过自动配置、注释驱动程序和Java 配置类提供了一种优雅的方式来管理Spring 应用程序的Bean 和依赖项。理解和掌握Spring Boot中的依赖注入和控制反转不仅可以提高代码的可维护性和可测试性,还可以帮助开发人员构建更加灵活和可扩展的应用程序。
它是微利淘客系统3.0的编辑们打造的,一定是一款高品质的产品。
以上关于Spring Boot中#依赖注入和控制反转的相关内容摘自互联网,仅供参考。相关信息请参见官方公告。
原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93367.html