Spring Boot项目创建
SpringBoot是快速开发Spring的一个框架。
安装Spring Boot Helper,建议用2021.3.2版本的IDEA。(高版本的idea安装一些插件需要收费)
这是安装好Spring Boot Helper插件后的变化。
如果没有那个像叶子的东西,就是没有安装Spring Boot Helper的插件。安装后就有了。
此时依赖就创建完毕看
此时就加载完毕了,如果发现没有下好,重点关注两个问题:
1.将自己的网络换一个信号好一点的(因为要下载依赖)
2.查看自己的maven是不是国内源。怎么看,重点看下面的图片
在文件夹中,找到setting文件
打开查看源:
以上搞定后,点击运行出现以下图片就可以了
记住此时程序是运行的,没有中断。仔细看。
快速添加依赖:
1.安装插件:
进入pom.xml的dependencies点击鼠标右键
源不修改(下面是例子,不用照搬)
这个是我刚刚添加的。
优点:
1.起步依赖(创建的时候就可以方便添加依赖)
2.内置Tomcat容器
3.快速部署,使用 jar 包加上简单的命令直接运行
4.抛弃xml的配置方式,使用注解和配置的方式进行开发
5.提供了更多的监控框架,方便的监控系统运行
使用
@Controller
@ResponseBody//设置返回数据
public class TestController {
@RequestMapping("/sayHi")
public void sayHi(){
System.out.println("你好");
}
}
为什么呢?因为在Spring boot中核心思想:约定大于配置。
约定和规范:
1.五大类必须放在demo或者demo下的子目录中。
idea热部署(写完代码不用手动重启,性代码可以自动生效):
1.添加springboot-dev-tool框架
2.在idea设置中开启项目的自动编译(共两个地方)
3.开启热部署。
修改后idea的Spring会自动重启。
SpringBoot配置文件
整个项⽬中所有重要的数据都是在配置⽂件中配置的,⽐如:
- 数据库的连接信息(包含⽤户名和密码的设置);
- 项⽬的启动端⼝;
- 第三⽅系统的调⽤秘钥等信息;
- ⽤于发现和定位问题的普通⽇志和异常⽇志等
配置文件格式:
Spring Boot 配置⽂件主要分为以下两种格式:
- properties
- ym
配置文件名:application,诺不使用,虽然不会报错,但是也不会生效。
理论上讲 properties 和 yml 可以⼀起存在于⼀个项⽬当中,但是properties 是官方默认的。也就是properties 优先级比yml 高。但是并不代表yml 就不执行,properties 执行完毕后,在执行yml。
实际的业务当中,我们通常会采取⼀种统⼀的配置⽂件格式(唯一)
配置文件中用 # 添加信息。
.properties 配置⽂件
properties 是以键值的形式配置的,key 和 value 之间是以“=”连接的。
但是有个小问题,在properties中出现中文,在下次打开IDEA会乱码,且不可逆,原因是,properties是不支持中文的。但是可以设置。
首先修改Settings
在修改当前项目
修改为utf-8
配置文件中配置类型分类:
1.系统配置项
server.port
2.用户自定义配置
XXXXX.MMM
自定义配置就有一个问题:如何读取?注入
@Controller
@ResponseBody//设置返回数据
public class TestController {
@Value("${mypath.path}")
private String mypath;
@RequestMapping("/sayHi")
public String sayHi(){
return "你好"+mypath;
}
}
properties 缺点:
properties 配置是以 key-value 的形式配置的。所以有很多冗余信息。
比如配置mysql。
properties 优点:
配置文件结构清晰:key=vlaue:适合初学者(比如我)
如何解决这个问题?yml
yml配置文件
yml 是 YAML 是缩写,它的全称 Yet Another Markup Language 翻译成中⽂就是“另⼀种标记语⾔”
yml 是树形结构的配置⽂件,它的基础语法是“key: value”,注意 key 和 value 之间使⽤英⽂冒汗加空格的⽅式组成的,其中的空格不可省略
yml的优点:
- yml 是⼀个可读性⾼,写法简单、易于理解,它的语法和 JSON 语⾔类似。
- yml ⽀持更多的数据类型,它可以简单表达清单(数组)、散列表,标量等数据形态。它使⽤空⽩
- 符号缩进和⼤量依赖外观的特⾊,特别适合⽤来表达或编辑数据结构、各种配置⽂件等。
- yml ⽀持更多的编程语⾔,它不⽌是 Java 中可以使⽤在 Golang、PHP、Python、Ruby、JavaScript、Perl中
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306?mysql
username: root
password: xietian1314
缺点:
**容错率比较低;比如key: value,value前面必须要加空格。**不加就错了。
yml配置不同数据类型以及null
# 字符串
string.value: Hello
# 布尔值,true或false
boolean.value: true
boolean.value1: false
# 整数
int.value: 10
int.value1: 0b1010_0111_0100_1010_1110 # ⼆进制
# 浮点数
float.value: 3.14159
float.value1: 314159e-5 # 科学计数法
# Null,~代表null
null.value: ~
还可以在yml中自定义一个类:
对象的读取。
1.应对配置文件中的类型创建一个类
加载配置文件的类名:
这个注解必须配合五大注解使用
@ConfigurationProperties(“myuser”)//读取配置文件的
@Controller
@ResponseBody
@RequestMapping("/user")
public class UserController {
@Autowired
private User user;
@PostConstruct
public void doPostConstruct(){
System.out.println(user.toString());
}
}
@Controller和@ResponseBody----(融合了)—>@RestController
配置多个环境的配置文件:
1.本地开发环境(本机数据库)
2.测试环境(测试数据库)
3.生成环境(给你用户用的环境)(生成数据库)
设置完毕后,需要在本体的porperties中写上
#指定配置文件的运行环境
spring.profiles.active=dev
总结一下:
读取配置文件有几种方式:
1.@Value(${XXX})
2.@ConfigurationProperties(“XXXX”)
3.@ProertySource(value=“classpath:配置文件的路径”,encoding=“utf-8”)