项目结构

pom.xml
<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>test.demo</groupId> <artifactId>springboot</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>springboot</name> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.0.RELEASE</version> <relativePath /> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> </project>
@Configurationproperties注解和@Value注解
@ConfigurationProperties加在有@Configuration的类或者由@Bean注解的方法上,
另外一个类似的注解@EnableConfigurationProperties
用于允许@ConfigurationProperties
使用示例:
package hello; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class, args); } }
package hello.bean;
//@Configuration
//@ConfigurationProperties("user.properties")
public class TestBean
{
private String name;
private int age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age = age;
}
}
package hello.config;
import hello.bean.TestBean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class BeanConfig
{
@ConfigurationProperties("user.properties")
@Bean
public TestBean getBean()
{
return new TestBean();
}
}
package hello.controller;
import hello.bean.TestBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class Controller
{
@Autowired
TestBean bean;
@Value("${user.properties.name}")
String name;
@RequestMapping(value = "/test", method = RequestMethod.GET)
public String get()
{
System.out.println(name);
return bean.getName();
}
@RequestMapping(value = "/post", method = RequestMethod.POST)
public String post()
{
return "post";
}
}
application.yml
user: properties: age: 18 name: zzzz
单个属性使用@Value
浙公网安备 33010602011771号