springboot default configuration file is application.properties or application.yml. Reads the configuration file There are two ways
1, the injection Environment object, the object acquired by Environment
2, use the Value Notes
The default value is a string type obtained, when using the Value annotation, automatic type conversions, use Environment object, designated class, as follows:
pom.xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.edu.spring</groupId> <artifactId>springboot</artifactId> <version>1.0.0</version> <packaging>jar</packaging> <name>springboot</name> <!-- FIXME change it to the project's website --> <url>http://www.example.com</url> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>2.1.6.RELEASE</version> <scope>import</scope> <type>pom</type> </dependency> </dependencies> </dependencyManagement> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> </dependencies> </project>
UserConfig.java
package com.edu.spring.springboot; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.env.Environment; import org.springframework.stereotype.Component; @Component public class UserConfig { @Autowired private Environment environment; @Value("${local.port}") private String port; @Value("${local.port}") private Integer port2; public void show(){ System.out.println("local.ip= "+environment.getProperty("local.ip")); System.out.println("local.port= "+environment.getProperty("local.port",Integer.class)); System.out.println("local.port= "+port); System.out.println("local.port= "+port2); } }
App.java
package com.edu.spring.springboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; @SpringBootApplication public class App { public static void main( String[] args ) { ConfigurableApplicationContext context=SpringApplication.run(App.class, args); System.out.println(context.getEnvironment().getProperty("local.ip")); context.getBean(UserConfig.class).show(); context.close(); } }
Results are as follows: