详解Spring Boot加载properties和yml配置文件
程序员文章站
2024-03-02 09:01:52
一、系统启动后注入配置
package com.example.config;
import org.springframework.beans.facto...
一、系统启动后注入配置
package com.example.config; import org.springframework.beans.factory.annotation.autowired; import org.springframework.context.annotation.configuration; import org.springframework.context.annotation.propertysource; import org.springframework.core.env.environment; /** * @author: grandkai * @create: 2016-09-01 11:24 */ @configuration @propertysource(ignoreresourcenotfound = true, value = {"classpath:/config/email.properties","classpath:/config/email.yml"}, name = "email") public class config {}
需要在applicationcontext中注册配置
annotationconfigembeddedwebapplicationcontext context = (annotationconfigembeddedwebapplicationcontext) app.run("参数1"); context.register(config.class);
用以下方式取值
environment env = context.getenvironment(); system.out.println(env.getproperty("address"));
email.yml文件配置如下:
server: address: 127.0.0.1
二、在命令行传入注入到程序中
public class main { public static void main(string... args) { //initialize the command line parsing stuff optionparser parser = new optionparser(); parser.accepts("greeting").withrequiredarg(); optionset options = parser.parse(args); //create the actual spring propertysource propertysource<?> ps = new joptcommandlinepropertysource(options); //setup the spring context annotationconfigapplicationcontext ctx = new annotationconfigapplicationcontext(); ctx.getenvironment().getpropertysources().addlast(ps); //register the property source with the environment ctx.register(greeter.class); ctx.refresh(); greeter greeter = ctx.getbean(greeter.class); greeter.saygreeting(); } } @component class greeter { @inject private environment env; //the following would also work //@value("${greeting}") //private string greeting; /** * print out the 'greeting' property if it exists, and otherwise, "welcome!". */ public void saygreeting() { system.out.println(env.getproperty("greeting", "welcome!")); } } public static void main(string [] args) { simplecommandlinepropertysource ps = new simplecommandlinepropertysource(args); @suppresswarnings("resource") annotationconfigapplicationcontext ctx = new annotationconfigapplicationcontext(); ctx.getenvironment().getpropertysources().addfirst(ps); ctx.register(applicationconfig.class); ctx.refresh(); } @configuration @enablescheduling @componentscan("com.mycompany.package") @propertysource( value = {"classpath:/application.properties", "file:${config.location}"}, ignoreresourcenotfound = true ) class applicationconfig { @bean public static propertysourcesplaceholderconfigurer propertyconfigurer() { return new propertysourcesplaceholderconfigurer(); } } @component class mycomponent { @value("${my.property.data}") private string mypropertydata; @scheduled(fixeddelaystring = "${schedule.delay.period}") public void run() { : } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
上一篇: java计算两个日期中间的时间
推荐阅读
-
详解利用Spring加载Properties配置文件
-
详解Spring Boot加载properties和yml配置文件
-
详解利用Spring加载Properties配置文件
-
spring-boot读取props和yml配置文件的方法
-
详解Spring Boot配置文件application.properties
-
详解Spring Boot配置文件application.properties
-
详解Spring加载Properties配置文件的四种方式
-
详解Spring加载Properties配置文件的四种方式
-
spring-boot读取props和yml配置文件的方法
-
spring boot-2.1.16整合swagger-2.9.2 含yml配置文件的代码详解