SpringBoot初识
springboot是一个提供给应用式服务的嵌入式servlet容器,spring boot的核心就是spring
优点:部署简单,配置文件少,tomcat等HTTP服务器的自动嵌入
缺点:spring framework 项目无法导入spring boot,spring boot项目只适用于全新的spring boot的项目
PS:
在Java的世界里,本来只有一个构建工具make,后面衍生成的GNU Make,后面百花齐放,至今影响力最大的是maven构建工具和Gradle,maven是使用xml作为配置文件,提供现成的目标而不需要我们提供每一个构建的命令,Gradle也是使用制品库来做优化管理的,但是比maven更加得简洁和灵活
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
dependencies {
compile("org.springframework.boot:spring-boot-starter-security")
}
spring boot的属性特点
application.properties文件
可以进行属性的注入比如:
book.name=三国演义 //在application文件中
@Value("${book.id}")//可以在其他文件中使用value注解对属性进行使用
也可以使用book.properties文件通过
@PropertySource("classpath:book.properties")
@ConfigurationProperties(prefix = "book")
进行注入,从而免去去了逐个注入的繁琐
spring boot可使用的配置文件有两种.properties和.yaml
首先application.yaml在Spring Boot中可以写在四个不同的位置,分别是如下位置:
项目根目录下的config目录中
项目根目录下
classpath下的config目录中
classpath目录下
四个位置中的application.yaml文件的优先级按照上面列出的顺序依次降低。即如果有同一个属性在四个文件中都出现了,以优先级高的为准。
两种配置方式各有好处,properties文件存储是无序的,yaml文件是有序的,比如在spring cloud中,有时候有序就变得非常重要了,但是yaml不支持@PropertySource注解。
@ControllerAdvice注解的使用
实现全局异常处理
使用方式是直接在新建类前添加注解,在文件下面可以进行@ExceptionHandler 注解用来指明异常的处理类型
全局数据绑定
使用该注解表示新建类可以作为全局的数据,这个全局数据的 key 就是返回的变量名,value 就是方法返回值,当然开发者可以通过 @ModelAttribute 注解的 name 属性去重新指定 key。
全局数据预处理
使用该注解新建类中可以对两个实体类的相同属性进行分辨,第一个点的是@ModelAttribute(“b”) Book book取别名,第二个就是@InitBinder
(“b”)的使用,表明请求参数需要使用b这个前缀,第三个就是在一开始发送请求的时候就人为得添加前缀
spring boot的异常
静态异常页面,使用http响应码来命名页面,默认是classpath:/static/error/ 路径下定义相关页面,比如说404错误就会跳转到404.html页面中。
动态异常页面,动态页面模板,不需要开发者自己去定义控制器,直接定义异常页面即可 ,Spring Boot 中自带的异常处理器会自动查找到异常页面。例如:
<td th:text="${path}"></td>
自定义异常
继承 DefaultErrorAttributes(推荐),因为 DefaultErrorAttributes 中对异常数据的处理已经完成,开发者可以直接使用。
自定义异常视图
首先以异常响应码作为视图名分别去查找动态页面和静态页面,如果没有查找到,则再以 4xx 或者 5xx 作为视图名再去分别查找动态或者静态页面。
上头小实例
第一次得奉献给hello world
package com.example.demo.text;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class HelloController {
//http://127.0.0.1:8080/HelloWorld
// o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
@RequestMapping("HelloWorld")
public String world(){
return "Hello SpringBoot!";
}
}
https://mp.weixin.qq.com/s?__biz=MzI1NDY0MTkzNQ==&mid=2247485330&idx=1&sn=de96a03b44b8ade8c5720a305f1fd1de&scene=21#wechat_redirect
springboot教程