SpringBoot
一、引言
1.1 什么是SpringBoot?
Struts2 + hibernate + spring (.java < .xml)
默认 > 约定 > 配置 > 编码 “零配置”
SpringBoot是帮助开发者进行快速开发Spring轻应用的一种框架。很多的第三方框架和组件都会和SpringBoot整合(反向整合),方便SpringBoot进行第三方框架和组件的调用。类似Maven整合了所有jar包,SpringBoot整合了所有框架。
SpringBoot是基于Maven(gradle)构建的
二、SpringBoot的构建
2.1 手动将Maven工程改造成SpringBoot(后面完全可以自动化)
1)创建一个干净的maven工程
2)继承SpringBoot父工程
<!-- maven工程继承SpringBoot父工程 -->
<parent>
<artifactId>spring-boot-starter-parent</artifactId>
<groupId>org.springframework.boot</groupId>
<version>2.3.0.RELEASE</version>
</parent>
3)添加SpringBoot的核心依赖
<!-- 添加SpringBoot的核心依赖 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
4)添加Maven和Springboot打包插件(如果不打包只运行可以不加这个)
<!-- 编译打包插件 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
5)准备核心配置文件
6)准备一个启动类(开启SpringBoot工程)
package com.qf.application;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
7)启动SpringBoot工程
1.2 将SpringMVC整合进SpringBoot
1)添加SpringMVC和SpringBoot整合依赖(起步依赖)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
2)配置Controller
package com.qf.application.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/test")
public class TestController {
@RequestMapping("/hello")
public String test(){
System.out.println("Controller的方法被调用了!");
return "SUCC";
}
}
3)访问controller
三、yml配置文件
3.1 什么是yml?
在 spring boot 中,有两种配置文件,一种是application.properties,另一种是application.yml,
两种都可以配置spring boot 项目中的一些变量的定义,参数的设置等
3.1 yml配置文件的格式
properties配置格式:
jdbc.url=xxxxxx
jdbc.username=xxxxx
yml的配置格式:
jdbc:
url: xxxxx
username: xxxx
3.2 代码手动读取yml配置
1)单值读取
#配置
com:
name: 张三
//代码
@Value("${com.name}")
private String name;
2)多值读取
com:
person:
name: 张三
age: 18
like:
- 唱
- 跳
- rap
- 篮球
address:
prod: 广东省
city: 深圳市
@Data
@Accessors(chain = true)
@Component
@ConfigurationProperties(prefix = "com.person")
public class Person {
private String name;
private Integer age;
private List<String> like;
private Map<String, String> address;
}
PS 思考
1 没有配置扫描,SpringBoot是如何找到controller的?
SpringBoot默认扫描启动类所在包下的所有包(类)
可以通过修改启动类的注解,实现自定义扫包
@SpringBootApplication(scanBasePackages = “com.a”)