Spring Boot
一.是什么
Spring需要大量XML配置,为简化Spring应用的搭建和开发,于是Spring Boot诞生。
Spring Boot提供大量开箱即用的依赖模块,例如 spring-boot-starter-redis、spring-boot-starter-data-mongodb 和 spring-boot-starter-data-elasticsearch 等。这些依赖模块为 Spring Boot 应用提供了大量的自动配置,使得 Spring Boot 应用只需要非常少量的配置甚至零配置,便可以运行起来。
特点:
- 独立运行的 Spring 项目
Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令“ java–jar xx.jar” 即可运行。
可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
- 内嵌 Servlet 容器
例如 Tomcat、Jetty 或者 Undertow 等,应用无需打成 WAR 包 。
-
提供starter简化Maven配置
-
提供大量自动配置
-
自带应用监控
-
无代码生成和xml配置
Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。
二.快速入门
使用 Spring Initializr 创建
步骤:
- Create New Project
- 点击 Spring Initializr,选择项目的 SDK 为 1.8,选择 starter service URL 为 http://start.spring.io(默认),最后点击下方的 Next 按钮进行下一步。(IDEA 会连接网络,并根据 starter service URL 查询 Spring Boot 的当前可用版本和组件列表)
- 在 Spring Initializr Project Settings 中,注意 Type 为 Maven,packaging 为 jar,Java version 切换为 8。
- 选择spring boot版本,以及所依赖的 Spring Boot 组件。
- 给当前的应用启动配置端口(resources-application.properties)
//启动端口
server.port=8001
- 在com.cc.myspringboot包下新建controller包,在controller包下新建HelloWorldController类
- 在HelloWorldController类前加上@RestController注释(属于SpringMVC的注释)
@RestController作用:1.声明控制器(@Controller); 2.返回json对象(@ResponseBody)
什么是json对象?json对象首先是字符串
//下面展示了一个简单的 JSON 数据:
{
"Tutorial":"JSON",
"Article":[
"JSON 是什么?",
"JSONP 是什么?",
"JSON 语法规则"
]
}
- 编写方法,并在方法前加上@RequestMapping注释
@RequestMapping作用:映射URL路径
三.Spring Boot starter
传统的 Spring 项目想要运行,不仅需要导入各种依赖,还要对各种 XML 配置文件进行配置。但 Spring Boot 项目在创建完成后,即使不编写任何代码,不进行任何配置也能够直接运行,这都要归功于 Spring Boot 的 starter 机制。
用户只需要在 Maven 中引入 starter 依赖,SpringBoot 就能自动扫描到要加载的信息并启动相应的默认配置。starter 提供了大量的自动配置,这些 starter 都遵循着约定成俗的默认配置,并允许用户调整这些配置,即遵循**“约定大于配置”**的原则。
1.spring-boot-starter-web
spring-boot-starter-web 为我们提供了嵌入的 Servlet 容器以及 SpringMVC 的依赖,并为 Spring MVC 提供了大量自动配置
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
@Controller
public class HelloController {
@ResponseBody
@RequestMapping("/hello")
public String hello() {
return "www.biancheng.net";
}
}
四.Spring Boot默认配置文件
Spring Boot 在启动时会将 resources 目录下的 application.properties 或 apllication.yml 作为其默认配置文件,但这并不意味着 Spring Boot 项目中只能存在一个 application.properties 或 application.yml。
Spring Boot 启动时会扫描以下 5 个位置的 application.properties 或 apllication.yml 文件,并将它们作为 Spring boot 的默认配置文件。(优先级从高到低排序)
- file:./config/*/
- file:./config/
- file:./
- classpath:/config/
- classpath:/
注:file: 指当前项目根目录;classpath: 指当前项目的类路径,即 src下(而配置文件一般放在src的resource下)。
五.Spring Boot日志
日志通常由一个日志门面和一个日志实现组合搭建而成,Spring Boot选用SLF4J+Logback组合搭建而成,并提供默认配置。
在项目开发中,记录日志时不应该直接调用日志实现层的方法,而应该调用日志门面(日志抽象层)的方法。
SLF4J的使用
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class HelloWorld {
public static void main(String[] args) {
Logger logger = LoggerFactory.getLogger(HelloWorld.class);
//调用 sl4j 的 info() 方法,而非调用 logback 的方法
logger.info("Hello World");
}
}
@Slf4j
自动生成该类的log 静态常量,等价于下述代码:
private final Logger log = LoggerFactory.getLogger(当前类名.class);