SpringBoot
核心思想:约定优于配置
约定优于配置(Convention over Configuration),是一种软件设计范式。
功能
1 起步依赖,减少导包,快速启动
2 自动配置,默认配置为主
引官网的一段
“Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.
We take an opinionated view of the Spring platform and third-party libraries so you can get started with minimum fuss. Most Spring Boot applications need minimal Spring configuration.”
引官网的一句话,说了一堆其实说是说又快又轻松地跑起项目来,springboot我来啦!跑呀跑呀~
(瞬间严肃!)官网:
https://spring.io/projects/spring-boot
事不宜迟,我们就跑起来吧~
只要使用idea就可以创建springboot啦!
创建方法如下:
如何用idea创建springboot项目
你们是不是项目一启动就是来个 Hello wrold !?
好了,看看代码结构
自动生成了空白的全局配置文件。项目开发中,一般都有几种实用的读取配置文件的方式,废话不多说,上干货,这里我选择两种最实用的(就是我在上班时也用的!!!)
一 用常量类读配置文件
- 编写配置文件
server.port=8081
com.name=大厂
version=0.0.0.7
- 写常量类
@Component
public class Global {
public static String comName;
public String getComName() {
return comName;
}
@Value("${com.name}")
public void setComName(String comName) {
this.comName = comName;
}
}
记住一定要写@Component注解,不然读不到。@Component注解的作用是将当前注入属性值的Person类对象作为Bean组件放到Spring容器中。
- 测试:
@RestController
public class readPropertiesController {
/**
* 用常量类读配置文件
* @return
*/
@RequestMapping("/read2")
public String demo2()
{
return Global.comName;
}
}
第一种方式就这样OK!
换一种方式就是:
二 真接在当前类,读自定义的comName对象读取全局配置文件,如下
/**
*常用的两种读取全局配置的方式
* author: jim
*/
@RestController
public class readPropertiesController {
/**
* 用常量类读配置文件
* @return
*/
@RequestMapping("/read2")
public String demo2()
{
return Global.comName;
}
@Value("${com.name}")
private String comName;
/**
* 当前类,读用自定义的comName对象读取全局配置文件
*/
@RequestMapping("/read")
public String demo() {
return comName;
}
}
嗯,spring默认支持了application.properties,而且它优先级更高。也就是spring支持两种全局配置文件application.properties和application.yml,若两个同时存在,application.properties配置文件会覆盖application.yaml配置文件。
YAML文件格式是Spring Boot支持的一种JSON超集文件格式,相较于传统的Properties配置文件,YAML文件以数据为核心,是一种更为直观且容易被电脑识别的数据序列化格式。
application.yaml配置文件的工作原理和application.properties是一样的,只不过yaml格式配置文件看起来更简洁一些。
YAML文件的扩展名可以使用.yml或者.yaml。
application.yml文件使用 “key:(空格)value”格式配置属性,使用缩进控制层级关系。
这里,针对不同数据类型的属性值,介绍一下YAML
(1)value值为普通数据类型(例如数字、字符串、布尔等)
当YAML配置文件中配置的属性值为普通数据类型时,可以直接配置对应的属性值,同时对于字符
串类型的属性值,不需要额外添加引号,示例代码如下:
server:
port: 8081
path: /hello
读取方式:
@Value("${server.path}")即可!
遇到的坑
1 读取配置文件出现乱码
网上查询说要配置文件(properties)添加UTF-8的属性,然而并没有效果。
最简单的方法,设置idea即可:
File – >seetings – >Editor --> File Encodings
如图:
以上均出自我自建的《hello_springboot》项目中。
少雷少坑少bug!
欢迎留言或者找私信我呀!有不懂的地方多交流,联系进哥,可以下载原项目,或者有视频讲解分享的!
文章总结来源:拉勾教育Java高薪训练营