SpringBoot 核心【基本配置】
4.再次启动即可
![](https://static001.geekbang.org/infoq/a5/a5dc0baf89af8d108e67e9e0d54fdf48.png)
2.2 关闭 banner
这个 banner 其实并没有什么作用,一般情况下我们会关点它,我们来看看如何关掉 banner。 main 方法中修改如下
public static void main(String[] args) {
SpringApplication app = new SpringApplication(SpringbootHelloApplication.class);
// 关闭 banner
app.setBannerMode(Banner.Mode.OFF);
app.run(args);
}
![](https://static001.geekbang.org/infoq/f7/f7afc5937181c6474a19e0cb50350eae.png)
SpringBoot 使用一个全局的配置文件 application.properties 或 application.yml,位于 src/main/resources 目录或者类路径/config 下,推荐使用 properties 的方式配置。
![](https://static001.geekbang.org/infoq/0a/0a9fed4cad7209577313fb35e6c7616a.png)
3.1 tomcat 端口号修改
tomcat 的端口号默认是 8080,我们需要将之修改为 8082,并将默认访问路径"/" 修改为"/springboot"
server.port=8082
server.servlet.context-path=/springboot
启动后浏览器访问即可:
![](https://static001.geekbang.org/infoq/ad/ade25aa475363392eb4e723cacc5f8a9.png)
3.2 常规属性配置
前面介绍 S
pring 的时候,我们想要注入 properties 中的值的时候我们需要通过 @PropertySource 指明 properties 文件的位置,然后通过 @Value 注入值,在 SpringBoot 中,我们只需要在 application.properties 定义属性,直接使用 @Value 注入即可。
1.application.properties 增加属性
user.username=波波烤鸭
user.age=18
user.address=深圳
2.代码中获取
/**
@program: springboot-hello
@description: Hello 案例
@author: 波波烤鸭
@create: 2019-05-08 21:10
*/
@RestController
public class HelloController {
@Value("${user.username}")
private String name;
@Value("${user.age}")
private int age;
@Value("${user.address}")
private String address;
@RequestMapping("/hello")
public String hello(){
return "Hello SpringBoot ... "+name+" "+age+" "+address;
}
}
3.访问测试
![](https://static001.geekbang.org/infoq/ac/acd32fe70f3f9f7e6d8afbc518cc4bf3.png)
4.中文乱码处理
内容是取到了,但是中文乱码,如何解决呢,继续往下看
在 application.properties 中添加如下设置
server.tomcat.uri-encoding=UTF-8
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
spring.http.encoding.force=true
spring.messages.encoding=UTF-8
file – > setting – > Editor – > File Encodings – >然后按照如下图设置
![](https://static001.geekbang.org/infoq/47/47f6701599721babf6c3a7c0f671ec22.png)
再测试
![](https://static001.geekbang.org/infoq/f6/f6a702aa88564db4babd07b01b6aa4fb.png)
搞定~
3.3 类型安全的配置
上面将的属性配置在实际的开发过程中有点复杂,因为我们需要设置的属性太多了,这时我看可以使用类型安全的配置方式来实现,这样使用起来会更加方便,具体如下:
1.application.properties 中配置
users.name=波波烤鸭
users.age=18
users.address=深圳
2.创建 bean 对象
@ConfigurationProperties 注解需要加入如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
不然会有错误提示,而且该注解的 locations 属性在 2.x 版本中已经移除了!!!
要解决参考此文:https://blog.csdn.net/baidu_19760977/article/details/71206108
/**
@program: springboot-hello
@description: 用户
@author: 波波烤鸭
@create: 2019-05-09 17:15
*/
@Component
@ConfigurationProperties(prefix = "users")
public class User {
private String name;
private String age;
private String address;
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 getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
3.业务代码
/**
@program: springboot-hello
@description: Hello 案例
@author: 波波烤鸭
@create: 2019-05-08 21:10
*/
@RestController
public class HelloController {
@Autowired
private User user;
@RequestMapping("/hello")
public String hello(){
return "Hello SpringBoot ... "+user.getName()+" "+user.getAge()+" "+user.getAddress();
}
}
4.测试
评论