springboot 控制台程序讀取配置文件(原創)


首先新建一個springboot項目,此處省略。

1.新建一個application.properties

person.name=kevin
person.age=6
person.sex=male

 

2.新建一個類,自動讀取對應字段的值

有兩種方式,

第一種

package cn.wq;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@EnableConfigurationProperties
@PropertySource("classpath:application.properties")
public class Person2Properties {
    @Value("${person.name}")
    private String name;

    @Value("${person.age}")
    private String age;

    @Value("${person.sex}")
    private String sex;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

 

第二種

package cn.wq;

import org.springframework.boot.context.properties.ConfigurationProperties;

@ConfigurationProperties(prefix = "person") /*如果使用prefix,則屬性名中不能使用@Value來注解,但是必須在spring啟動時,添加注解 @EnableConfigurationProperties(PersonProperties.class)*/
public class PersonProperties {

    private String name;
    private String age;
    private String sex;
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

 

3.啟動主程序:

package cn.wq;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Configuration;

@Configuration
@EnableConfigurationProperties(PersonProperties.class)
@SpringBootApplication
public class Application2  implements CommandLineRunner {
    public static void main(String[] args){
        SpringApplication.run(Application2.class,args);
    }

    @Autowired
    PersonProperties personProperties;

    @Autowired
    Person2Properties person2Properties;

    @Override
    public void run(String... args) {
        System.out.println("程序實際上的入口在這里。");
        System.out.println("name:"+personProperties.getName());
        System.out.println("age:"+personProperties.getAge());
        System.out.println("sex:"+personProperties.getSex());


        System.out.println("2-name:"+person2Properties.getName());
        System.out.println("2-age:"+person2Properties.getAge());
        System.out.println("2-sex:"+person2Properties.getSex());
    }
}

 

4.運行,輸出結果:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.1.0.RELEASE)

2019-06-19 20:20:50.348  INFO 18344 --- [           main] cn.wq.Application2                    : Starting Application2 on cnki5213 with PID 18344 (C:\AppConsoleSpringBoot\target\classes started by Administrator in C:\AppConsoleSpringBoot)
2019-06-19 20:20:50.354  INFO 18344 --- [           main] cn.wq.Application2                    : No active profile set, falling back to default profiles: default
2019-06-19 20:20:51.303  INFO 18344 --- [           main] cn.wq.Application2                    : Started Application2 in 1.564 seconds (JVM running for 3.74)
程序實際上的入口在這里。
name:kevin
age:6
sex:male
2-name:kevin
2-age:6
2-sex:male

Process finished with exit code 0

 

鳴謝

參考文獻:https://www.cnblogs.com/V1haoge/p/7183408.html 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM