简介:
Spring Boot :SpringMVC+Spring结合体
0配置简化开发。
创建工程
我用的是:
- Idea
- jdk 1.8
- maven
可根据下面图一步一步做下一步最后完成就好了。
完成的目录是这样的
我把 resources(资源文件) 下的application.properties改成application.yml
- SpringbootApplication程序的入口。
- statics 静态资源
- templates 模板资源
- application.yml 配置文件
- pom文件为基本的依赖管理文件
pom文件引入依赖
spring-boot-starter-parent作用
在pom.xml中引入spring-boot-start-parent,spring官方的解释叫什么stater poms,它可以提供dependency management,也就是说依赖管理,引入以后在申明其它dependency的时候就不需要version了,后面可以看到。
spring-boot-starter-web作用
springweb核心组件
spring-boot-maven-plugin作用
如果我们要直接Main启动spring,那么以下plugin必须要添加,否则是无法启动的。如果使用maven 的spring-boot:run的话是不需要此配置的。(我在测试的时候,如果不配置下面的plugin也是直接在Main中运行的。)
我们现在来举个栗子
我们先在application.yml配置里配置 girl :下面是它的属性 记得girl:前面不能空格
配置文件中用到了${random} ,它可以用来生成各种不同类型的随机值。
创个实体类 girl女孩
@ConfigurationProperties(prefix=" ")在application.yml配置里的girl里面的值,映射到实体类下的属性
@Component可加可不加
我们创个controller
可加可不加@EnableConfigurationProperties注解。
启动工程,访问localhost:8081/hello,我们会发现配置文件信息读到了。
自定义配置文件
自定义配置文件,application.properties:
com.boy.name=boy
com.boy.age=23
- 1
- 2
- 3
将这个配置文件信息赋予给一个javabean
@Configuration
@PropertySource(value = "classpath:application.properties")
@ConfigurationProperties(prefix = "com.boy")
public class User {
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;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
在最新版本的springboot,需要加这三个注解。@Configuration
@PropertySource(value = “classpath:test.properties”)
@ConfigurationProperties(prefix = “com.forezp”);在1.4版本需要
PropertySource加上location。
@RestController /*返回json */ @EnableConfigurationProperties({GirlProperties.class}) public class HelloController { @Autowired private GirlProperties girlProperties; @RequestMapping(value ="/hello",method = RequestMethod.GET ) public String say(){ return girlProperties.getCupSize()+"..."+girlProperties.getNumber(); }
@Autowired
User user;
@RequestMapping(value =
"/user")
public String
user(){
return user.getName()+user.getAge(); }}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
启动工程,打开localhost:8080/user;