首先新建一個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
鳴謝