使用@PropertySource读取配置文件通过@Value进行参数注入

使用@PropertySource读取配置文件通过@Value进行参数注入,是一个常见的spring注入配置方式。下面是详细讲解的攻略。

步骤一:创建配置文件

首先创建一个名为“application.yml”的配置文件,并写入相关的配置信息。例如:

server:
  port: 8080
  context-path: /myApp

步骤二:创建配置类

创建一个名为“AppConfig”的配置类,并在类上使用注解@PropertySources来指定要读取的配置文件,然后在类中使用注解@Value来注入配置信息。

示例:

@Configuration
@PropertySources(
        // 指定要读取的配置文件
        @PropertySource(value = "classpath:application.yml", encoding = "UTF-8")
)
public class AppConfig {

    @Value("${server.port}")
    private int port;

    @Value("${server.context-path}")
    private String contextPath;

    @Bean
    public MyServer myServer() {
        MyServer server = new MyServer();
        server.setPort(port);
        server.setContextPath(contextPath);
        return server;
    }
}

在配置类中,通过使用@Value注解来注入配置信息,${key}中的key表示在配置文件中的配置项名称,可以使用.来表示层级关系。

步骤三:使用配置信息

在需要使用配置信息的地方注入上述创建的配置类即可。

示例:

@SpringBootApplication
public class MyApp {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(MyApp.class, args);
        MyServer myServer = context.getBean(MyServer.class);
        myServer.start();
    }
}

在main方法中,通过使用SpringApplication.run来启动Spring应用程序,然后通过context.getBean来获取MyServer类的实例,从而获取到配置的server信息。

示例一:使用多个配置文件

如果需要使用多个配置文件,则在@PropertySources注解中指定多个@PropertySource。

示例:

@Configuration
@PropertySources({
        @PropertySource(value = "classpath:application.yml", encoding = "UTF-8"),
        @PropertySource(value = "classpath:custom.yml", encoding = "UTF-8")
})
public class AppConfig2 {

    @Value("${server.port}")
    private int port;

    @Value("${server.context-path}")
    private String contextPath;

    @Value("${custom.key}")
    private String customKey;

    @Bean
    public MyServer myServer() {
        MyServer server = new MyServer();
        server.setPort(port);
        server.setContextPath(contextPath);
        return server;
    }

    @Bean
    public CustomBean customBean() {
        CustomBean bean = new CustomBean();
        bean.setKey(customKey);
        return bean;
    }
}

上述示例中,除了读取application.yml中的配置外,还读取了custom.yml中的配置。

示例二:使用属性占位符

在配置文件中也可以使用属性占位符来引用其他配置项的值。

示例:

my:
  value: "hello ${name}"
  name: "world"

在上述示例中,my.value的值使用了$name占位符,它将会被my.name的实际值替换。

在@Configuration类中,注入my.value的值即可。例如:

@Configuration
@PropertySource(value = "classpath:config.yml", encoding = "UTF-8")
public class AppConfig3 {

    @Value("${my.value}")
    private String myValue;

    @Bean
    public MyBean myBean() {
        MyBean bean = new MyBean();
        bean.setValue(myValue);
        return bean;
    }
}

上述示例中,MyBean类已经定义了value字段,并需要通过@Bean的方式注入到Spring容器中。

这里将config.yml配置文件的my.value值注入到MyBean的value字段中,使用了@Value注解,并指定了${my.value}占位符来获取配置文件中的值。

这就是使用@PropertySource读取配置文件通过@Value进行参数注入的完整攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用@PropertySource读取配置文件通过@Value进行参数注入 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • 百度推广里中怎么查看网站页面排名?

    以下是“百度推广里中怎么查看网站页面排名?”的完整攻略: 百度推广里中怎么查看网站页面排名? 在百度推广中,可以通过以下步骤查看网站页面排名: 登录百度推广:在浏览器中输入“推广.baidu.com”,进入百度推广登录页面,输入账号和密码登录。 进入推广计划:在百度推广主界面中,选择需要查看排名的推广计划,进入推广计划页面。 进入关键词列表:在推广计划页面中…

    html 2023年5月18日
    00
  • js操作XML文件的实现方法兼容IE与FireFox

    下面详细讲解如何使用JavaScript操作XML文件并兼容IE与Firefox。 1. 什么是XML文件? XML(Extensible Markup Language)是一种被设计用来传输和存储数据的标记语言。与HTML相比,XML更加灵活和自由,可以自定义标记,用来描述非常复杂的数据结构和内容。 2. 如何使用JavaScript操作XML文件 要使用…

    html 2023年5月30日
    00
  • Java解析XML的四种方式

    下面就来详细讲解一下Java解析XML的四种方式。 一、DOM方式 DOM方式是将整个XML文档读入内存,形成一棵树状结构(DOM树),然后对整个树进行操作。对于较小的XML文件,DOM方式效率较高,但是对于较大的XML文件则会消耗较多的内存。下面是一个DOM方式解析XML的示例: // 创建一个DocumentBuilderFactory对象 Docume…

    html 2023年5月30日
    00
  • win10 2004卡在重启界面进不去怎么办 电脑停留在启动界面的解决方法

    以下是“win10 2004卡在重启界面进不去怎么办 电脑停留在启动界面的解决方法”的完整攻略: win10 2004卡在重启界面进不去怎么办 电脑停留在启动界面的解决方法 如果您的电脑在重启界面卡住了,无法进入系统,您可以按照以下步骤进行操作: 检查硬件设备:首先,您需要检查电脑的硬件设备是否正常。您可以检查电脑的硬盘、内存、显卡等设备是否正常连接。如果有…

    html 2023年5月18日
    00
  • HTML中的标签和元素的区别详解

    HTML(Hypertext Markup Language,超文本标记语言)是一种用于创建网页的标记语言。在HTML中,标签和元素是两个至关重要的概念,但它们并不是一个意思。下面将详细讲解HTML中的标签和元素的区别及其使用。 标签 标签是一种HTML代码,其通常由尖括号“<”和“>”组成,并且注明了元素的类型以及其他属性值如何组成。比如以下是…

    html 2023年5月30日
    00
  • IDEA 中使用 Hudi的示例代码

    下面我为你介绍如何在 IDEA 中使用 Hudi 的示例代码。 安装和配置 Hudi 在使用 Hudi 之前,需要在你的项目中添加相关的依赖库。以 Maven 为例,在 pom.xml 文件中加入以下内容: <!– Hudi 核心库 –> <dependency> <groupId>org.apache.hudi&lt…

    html 2023年5月31日
    00
  • windows英文版打开百度是乱码怎么安装中文语言包?

    要解决Windows英文版打开百度乱码的问题,需要安装中文语言包。具体步骤如下: 1. 下载中文语言包 首先需要下载对应的中文语言包。 Windows 10用户可以在 Microsoft官网 中选择需要的语言,下载并安装对应的语言包。 Windows 7或8用户需要先确定系统版本,然后在 Microsoft官网 下载对应的语言包。 2. 安装中文语言包 下载…

    html 2023年5月31日
    00
  • android闪关灯的开启和关闭方法代码实例

    下面就为您详细讲解一下“android闪关灯的开启和关闭方法代码实例”的完整攻略。 一、闪光灯的开启方法 要实现闪光灯的开启,我们需要使用Camera类来打开相机,然后在设置参数过程中,开启闪光灯模式。下面我们通过一段示例代码来具体说明: private void turnOnFlashLight() { camera = Camera.open();//获…

    html 2023年5月31日
    00
合作推广
合作推广
分享本页
返回顶部