Spring Boot 依赖注入错误收集

1、NullPointerException

public class AliOSSUtils{
	private AliOSSUtilsProperties aliOSSUtilsProperties;
	    // 报错!!!!!!!!!!!
	String endpoint = aliOSSUtilsProperties.getEndpoint();
	String accessKeyId = aliOSSUtilsProperties.getAccessKeyId();
	String accessSecret = aliOSSUtilsProperties.getAccessKeySecret();
	String bucketName = aliOSSUtilsProperties.getBucketName();
}

在Java中,声明类的成员并在声明时直接赋值是合法的。

但在Spring Boot中,Bean的注入是在类实例化之后进行的,而不是在类定义之前。
当Spring容器实例化类的对象时,它会检查类的依赖项,并将相应的依赖项注入到类的成员变量中

当在类的成员变量声明处直接使用aliOSSUtilsProperties的属性访问方法时,可能会导致空指针异常。这是因为在该位置,aliOSSUtilsProperties尚未被注入,因此其值为null,无法调用其方法。

要解决这个问题,可以将对aliOSSUtilsProperties属性的访问和初始化操作移动到方法内部或构造函数中。例如:

private AliOSSUtilsProperties aliOSSUtilsProperties;
private String endpoint;
private String accessKeyId;
private String accessSecret;
private String bucketName;

public void initializeProperties() {
    endpoint = aliOSSUtilsProperties.getEndpoint();
    accessKeyId = aliOSSUtilsProperties.getAccessKeyId();
    accessSecret = aliOSSUtilsProperties.getAccessKeySecret();
    bucketName = aliOSSUtilsProperties.getBucketName();
}

或者,在构造函数中进行初始化:

private AliOSSUtilsProperties aliOSSUtilsProperties;
private String endpoint;
private String accessKeyId;
private String accessSecret;
private String bucketName;

public MyClass(AliOSSUtilsProperties aliOSSUtilsProperties) {
    this.aliOSSUtilsProperties = aliOSSUtilsProperties;
    endpoint = aliOSSUtilsProperties.getEndpoint();
    accessKeyId = aliOSSUtilsProperties.getAccessKeyId();
    accessSecret = aliOSSUtilsProperties.getAccessKeySecret();
    bucketName = aliOSSUtilsProperties.getBucketName();
}

这样,在实例化类的对象时,aliOSSUtilsProperties会被正确注入,并且可以在方法或构造函数中访问它的属性。请确保在使用这些属性之前,aliOSSUtilsProperties已经被正确注入,并且不为null

2、使用@AutoWired注入@Mapper警告报红

可以正常运行,报警告是因为AutoWired是Spring的注解它找不到它规定的那些容器,可以把AutoWired改成Resource,Resource是java自己的注解不会去找Bean

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值