1、@ConfigurationProperties注解是什么意思?

@ConfigurationProperties 可以将属性文件与一个Java类绑定,将属性文件中的变量值注入到该Java类的成员变量中

示例代码:

/**
 * SSP配置
 *
 * @author mua
 */
@Component
@Data
@ConfigurationProperties(prefix = "ssp")
public class SSPProperties {


    private String endpoint;

    private String apikey;

}

类中定义了endpoint和apikey两个属性,分别表示终端节点和API密钥。这些属性可以通过在application.yaml文件中以"ssp"为前缀进行配置。

application.yaml代码示例:

ssp:
  endpoint: https://xxxx.execute-api.cn-north-1.amazonaws.com.cn/v1/
  apikey: xxxxxxglLZoJZOJLNoxxxxxxx
  account: 29xxxxxxxxx
  sendMailLambda: xxx-send-email

2、@Configuration这个注解到底有啥用?

@Configuration注解表示这个类是一个Spring的配置类,用于定义Bean的配置信息。当Spring应用程序启动时,会扫描这个类并加载其中定义的Bean。这个注解通常与@Bean注解一起使用,用于配置应用程序的组件。

Q:

加这个配置类有啥作用呢?比如什么场景下需要这样做? 

A:

使用@Configuration注解的配置类可以帮助组织和管理应用程序中的Bean定义。这样的配置类通常用于以下场景:

  • 配置第三方库的Bean,如数据库连接池、消息队列等。
  • 配置应用程序的核心组件,如拦截器、过滤器等。
  • 配置应用程序的定时任务、调度任务等。
  • 配置应用程序的各种属性和参数。

通过使用@Configuration注解,可以将相关的配置信息集中在一个类中,提高了代码的可维护性和可读性。同时,这样的配置类也可以方便地进行单元测试和模块化开发。

Q:

我可以理解为这样做的话,别的类中容易调用并且执行时机也有关吗?

A:

是的,通过将配置信息集中在一个@Configuration注解的类中,可以方便其他类进行调用和使用。此外,Spring容器会在启动时加载这些配置类,并根据其中定义的Bean信息进行实例化和管理,确保这些Bean在需要时能够正确地被注入到其他组件中。因此,这样做不仅方便了调用,也确保了Bean的正确初始化和执行时机的控制

3、@Value("${xxl.job.executor.ip}") 为啥不是这样:@ConfigurationProperties(prefix = "xxl")这种形式注入?两者有啥区别?

@Value("${xxl.job.executor.ip}")和@ConfigurationProperties(prefix = "xxl")是两种不同的属性注入方式,它们有以下区别:
- @Value注解用于直接注入单个属性的值,需要指定属性的全名(包括前缀),适用于少量属性的注入。
- @ConfigurationProperties注解用于将一组属性绑定到一个POJO类中,通过指定前缀来匹配配置文件中的属性,适用于一次性注入多个相关属性。

在你的情况下,如果属性较多且相关性强,可以考虑使用@ConfigurationProperties(prefix = "xxl")的方式,将多个属性绑定到一个POJO类中,提高代码的可读性和维护性。如果只需要注入少量属性,使用@Value注解也是一种简洁的方式。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部