如果后续,项目要部署到测试环境、上生产环境,我们需要来修改这两个参数。 而如果开发一个大型项目,所有用到的技术涉及到的这些个参数全部写死在java代码中,是非常不便于维护和管理的。
img1
那么对于这些容易变动的参数,我们可以将其配置在配置文件中,然后通过 @Value 注解来注解外部配置的属性。如下所示:
img2
具体实现代码如下:
1). application.yml

aliyun:
  oss:
    endpoint: https://oss-cn-beijing.aliyuncs.com
    bucketName: java-ai

2). AliyunOSSOperator
img3

如果只有一两个属性需要注入,而且不需要考虑复用性,使用@Value注解就可以了。
但是使用@Value注解注入配置文件的配置项,如果配置项多,注入繁琐,不便于维护管理 和 复用。如下所示:
img4

那么有没有一种方式可以简化这些配置参数的注入呢?答案是肯定有,在Spring中给我们提供了一种简化方式,可以直接将配置文件中配置项的值自动的注入到对象的属性中。

Spring提供的简化方式套路:
1). 需要创建一个实现类,且实体类中的属性名和配置文件当中key的名字必须要一致

 比如:配置文件当中叫endpoint,实体类当中的属性也得叫endpoint,另外实体类当中的属性还需要提供 getter / setter方法

2). 需要将实体类交给Spring的IOC容器管理,成为IOC容器当中的bean对象
3). 在实体类上添加@ConfigurationProperties注解,并通过perfect属性来指定配置参数项的前缀

img5

具体实现步骤:
1). 定义实体类AliyunOSSProperties ,并交给IOC容器管理

@Data
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliyunOSSProperties {
    private String endpoint;
    private String bucketName;
}

2). 修改AliyunOSSOperator

img6


最后修改:2025 年 09 月 17 日
如果觉得我的文章对你有用,请随意赞赏