Java工作学习笔记

2024-06-13 1323阅读

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

@ConfigurationProperties 可以将属性文件与一个Java类绑定,将属性文件中的变量值注入到该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注解也是一种简洁的方式。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]