spring boot 依赖注入失败问题

今天在看项目中的代码时,发现了一个问题。那就是依赖注入失败,所有注入的类都是null,这种错误,在我反复dug的情况下面,或者是在不断的去查询资料的情况下,终于发现了这一问题,也不是很厉害的问题,也是一个写代码的小问题,但是也是很难发生的问题。因为当我去调用其他的方法的时候,他不会注入失败,我们来看下问题的原因
在这里插入图片描述
看上面的代码,其实是很难发现有啥问题的,或者说没有啥问题,这是一个控制层的代码,但是问题就出在了,方法上面,私有变量,导致 jdk动态代理无法帮助我们创建对象,所以一直注入失败。改成public就好了。

### Spring Boot 依赖注入使用方法 #### 依赖注入概述 Spring Boot依赖注入机制简化了应用程序组件间的协作,使开发者能够更专注于业务逻辑而非基础设施细节。这种机制让对象之间的依赖关系可以由容器自动管理和配置,从而实现了松散耦合和更好的代码结构[^1]。 #### 注解 `@Autowired` 的应用 在 Spring Boot 中,`@Autowired` 是最常用的依赖注入注解之一,默认情况下采用基于类型的自动装配策略。这意味着当存在多个候选 Bean 时,如果它们的类型不同,则会根据类型匹配相应的 Bean 进行注入;如果有相同类型的多个实例,则可能需要进一步指定具体的 Bean 名称或其他限定条件[^2]。 ```java import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class MyService { private final AnotherService anotherService; // 构造器注入示例 @Autowired public MyService(AnotherService anotherService) { this.anotherService = anotherService; } // 或者字段注入(不推荐) //@Autowired //private AnotherService anotherService; } ``` #### 方法级与构造函数级别的依赖注入 除了上述提到的字段级别注入外,在实际开发过程中更加提倡的是通过构造函数来进行依赖注入。这样做不仅有助于提高测试友好度,还能确保不可变属性的安全初始化。对于那些可选依赖项或是复杂场景下则可以选择 setter 方法形式完成 DI 操作[^3]。 ```java // 推荐做法:构造器注入 @Autowired public MyClass(SomeDependency dependency){ this.dependency = dependency; } // 可选项或特殊情况下的setter注入 @Autowired(required=false) public void setOptionalDependency(OptionalDependency optionalDependency){ this.optionalDependency = optionalDependency; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值