使用@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日

相关文章

  • mysql数据库导出xml的实现方法

    下面我来为您讲解如何实现MySQL数据库导出XML的攻略。 标题一:前置条件 在进行MySQL数据库导出XML之前,需要确保您已经安装好了以下工具: MySQL数据库 MySQL客户端 XML Parser 标题二:步骤一-创建MySQL表 在进行数据库导出之前,您需要在MySQL数据库中创建一张表。以示例表employees为例,执行以下SQL语句: CR…

    html 2023年5月30日
    00
  • SpringBoot集成drools的实现示例

    SpringBoot是一种非常流行的Java框架,而Drools则是与规则引擎相关的框架。在集成Drools和SpringBoot过程中,可以使用Maven来进行构建和管理,以下是完整的攻略。 第一步:创建SpringBoot项目 使用Spring Initializr来创建一个新的SpringBoot项目,选择所需的dependencies,包括Sprin…

    html 2023年5月30日
    00
  • ps怎么做出公章-教你用PS制作逼真的公章教程

    以下是使用Photoshop制作公章的详细攻略: 步骤1:准备工作 打开Photoshop软件,并创建一个新的文档。 设置文档的大小和分辨率,以适应您需要制作的公章大小。 在工具栏中选择“椭圆形工具”,并绘制一个圆形。 在图层面板中,选择“新建图层”,并将其命名为“外框”。 步骤2:制作公章外框 在“外框”图层上,使用“椭圆形选框工具”绘制一个圆形选择区域。…

    html 2023年5月17日
    00
  • 安卓平板电脑打开Java文件乱码该怎么办?

    为了解决安卓平板电脑打开Java文件乱码的问题,我们需要执行以下操作: 1. 安装文本编辑器 首先,我们需要安装一个文本编辑器,推荐使用 QuickEdit 文本编辑器。 2. 调整编辑器字符集 打开 QuickEdit 文本编辑器,在主界面点击右上角的三个点,从弹出的菜单中选择“设置”选项。 在设置菜单中,点击“文本编辑”选项,然后在“字符集”下拉菜单中选…

    html 2023年5月31日
    00
  • Airpods Pro怎么样 AirPods Pro价格是多少

    以下是关于AirPods Pro的详细攻略: AirPods Pro是什么? AirPods Pro是苹果公司推出的一款无线耳机,于2019年10月发布。AirPods Pro采用了主动降噪技术和透明模式,可以提供更好的音频体验和更好的环境感知。 AirPods Pro的价格是多少? AirPods Pro的价格因地区和销售渠道而异。在美国,AirPods …

    html 2023年5月17日
    00
  • asp.net 将一个图片以二进制值的形式存入Xml文件中的实例代码

    首先,我们可以使用C#语言和ASP.NET框架来将图片以二进制值的形式存储到XML文件中。下面是步骤和示例代码: 步骤1:将图片转换为二进制格式 在操作图片之前,我们需要将其转换为二进制格式。下面是一个用于将图片转换为二进制格式的示例代码: public byte[] ConvertImageToBinary(string imagePath) { byte…

    html 2023年5月30日
    00
  • Java dom4j生成与解析XML案例详解

    Java dom4j生成与解析XML案例详解 什么是dom4j? dom4j是一个开放源代码的Java XML解析器,它基于Java标准的DOM和XPath接口,并扩展了DOM和XPath库以实现更好的性能和易用性。dom4j能够读取XML文档、遍历XML元素树、编辑XML文档并生成新的XML文档。 dom4j生成XML dom4j生成XML是指使用dom4…

    html 2023年5月30日
    00
  • win10安装vmware workstation提示没有未桥接的主机网络适配器怎么解决?

    以下是解决Win10安装VMware Workstation提示没有未桥接的主机网络适配器的攻略: 检查网络适配器设置:首先,您需要检查您的计算机的网络适配器设置。在Windows 10中,您可以通过“控制面板”中的“网络和共享中心”来查看和修改网络适配器设置。请确保您的计算机上至少有一个未桥接的主机网络适配器。 重新安装VMware Workstation…

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