Springboot的核心配置文件
Springboot的核心配置文件用于配置Spring boot程序,有两种格式的配置文件:
- .properties文件
- .yml文件
配置示例
.properties文件 — 键值对的properties属性文件配置方式
访问方式:
.yml 文件
yml是一种yaml 格式的配置文件主要采用一定的空格、换行等格式进行排版配置;
yaml是一种直观的能够被计算机识别的数据序列化格式,容易被人们阅读,yml类似于xml,但是语法比xml简洁的多;
值与前面的冒号配置项必须有一个空格;
yml后缀也可以使用yaml后缀;
注意:程序优先读取 .properties 文件,要用yml文件,现将properties文件改名或删除
配置示例:
多环境配置
需要在application 后面 -test , -dev 等表示不同环境使用不同的配置文件,然后在总的 .properties 文件中用spring.profiles.active ,注意如果指定文件中 有相应的配置 ,总的application.properties是不起作用的
自定义配置文件读取
有时我们要用到自己定义的配置文件,而不是spingboot自带的
这时我们可以用 @Value注解
我们启动程序,会发现有乱码
这时我们需要改一下idea 中设置的编码,然后发现还是乱码
最后将原来的配置文件删除在重新建一个,问题解决
SpringBoot 自定义配置文件映射
将自定义配置文件写到一个类中,用@ConfigurationProperties(prefix="")来引用
然后访问一下
SpringBoot 下的SpringMvc开发
Spring boot下的spring mvc 和之前的spring mvc使用是完全一样的:
@Controller(springmvc的controller,处理http请求)
@RestController
(spring4 后新增的,是@Controller和@ResponseBody的结合)
@GetMapping
(@GetMapping = @RequestMapping +RequestMetod.GET)
@PostMapping
(@GetMapping = @RequestMapping +RequestMetod.POST)
@PutMapping
(@GetMapping = @RequestMapping +RequestMetod.PUT)
@DeleteMapping
(@GetMapping = @RequestMapping +RequestMetod.DELETE)
package com.nanianxiatian.springboot.model;
/**
* @author nanianxiatian
*/
public class User {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.nanianxiatian.springboot.controller;
import com.nanianxiatian.springboot.model.User;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author nanianxiatian
*/
@RestController // @RestController= @Controller + @ResponseBody
public class MvcController {
@RequestMapping("/test/getUser")
public Object getUser(){
User user = new User();
user.setId(1);
user.setName("小明");
//返回的不是页面,是json
return user;
}
/**
* @GetMapping 只支持get 请求 @GetMapping = @RequestMapping +RequestMetod.GET
* @return
*/
@GetMapping("/test/getUser1")
public Object getUser1(){
User user = new User();
user.setId(2);
user.setName("小红");
//返回的不是页面,是json
return user;
}
/**
* @PostMapping 只支持get 请求 @GetMapping = @RequestMapping +RequestMetod.POST
* @return
*/
@PostMapping("/test/getUser2")
public Object getUser2(){
User user = new User();
user.setId(3);
user.setName("小李");
//返回的不是页面,是json
return user;
}
}
getUser1 可正常访问
getUser2 只允许post方法