本文参考:动力节点_杨利军_SpringBoot视频教程(2018年3月)
1、SpringBoot简介
2、SpringBoot主要特性
3、springboot四大核心功能
4、springboot开发环境
5、第一个springboot程序
6、springboot程序解释
7、springboot核心配置文件
8、多环境配置文件
9、读取自定义配置@Value和@ConfigurationProperties
10、SpringBoot实现RestFull
11、SpringBoot热部署插件
12、SpringBoot使用拦截器
13、SpringBoot使用Servlet
14、SpringBoot使用Filter
15、SpringBoot项目字符编码处理
1、SpringBoot简介 <--返回目录
springboot是spring家族中的一个全新的框架,它用来简化spring应用程序的创建和开发过程,也可以说springboot能简化我们之前采用springmvc+spring+mybatis框架进行开发的过程。
在以往我们采用springmvc+spring+mybatis框架进行开发的时候,搭建和整合三大框架,需要做很多工作,比如配置web.xml,配置spring,配置mybatis,并将它们整合在一起等,二springboot框架对此开发过程进行了革命性的颠覆,抛弃了繁琐的xml配置过程,采用大量的默认配置来简化我们的开发过程。
所以采用springboot可以非常容易和快速地创建基于spring框架的应用程序,它让编码变简单了,配置变简单了,部署变简单了,监控变简单了。正因为springboot它划繁为简,让开发变得极其简单和快速,所以在业界备受关注。
2、SpringBoot主要特性 <--返回目录
1)能够快速创建基于spring的应用程序
2)能够直接使用java main方法启动内嵌的tomcat、jetty服务器运行springboot程序,不需要部署war包文件
3)提供约定的starter pom来简化mven配置,让maven的配置变得简单
4)根据项目的maven依赖配置,springboot自动配置spring、springmvc等
5)提供了程序的健康检查等功能
6)基本可以完全不使用xml配置文件,采用注解配置
3、springboot四大核心功能 <--返回目录
1)自动配置:针对很多spring应用程序和常见的应用功能,springboot能自动提供相关配置
2)起步依赖:告诉springboot需要什么功能,它就能引入需要的依赖库
3)Actuator:让你能够深入运行中的springboot应用程序,一探springboot程序的内部信息
4)命令行界面:这是springboot的可选特性,主要针对Groovy语言使用
4、springboot开发环境 <--返回目录
springboot2.0在2018年3月发布。如果使用eclipse,推荐安装Spring Tool Suite(STS)插件,或者在spring官网下载sts。如果使用IDEA旗舰版,自带了springboot插件。推荐使用maven3.2+。推荐使用java8,虽然springboot也兼容java6。
spring下载Spring Tools for Eclipse(https://spring.io/tools)
5、第一个springboot程序 <--返回目录
步骤:
eclipse(安装了sts插件)创建springboot项目:new -> other... -> Spring Starter Project
项目结构
在pom.xml将springboot的版本改为了2.1.2.RELEASE。
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.2.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.oy</groupId> <artifactId>boot-hello</artifactId> <version>0.0.1-SNAPSHOT</version> <name>boot-hello</name> <description>boot-hello project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
BootHelloApplication
package com.oy; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class BootHelloApplication { public static void main(String[] args) { SpringApplication.run(BootHelloApplication.class, args); } }
写一个controller类
package com.oy.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class IndexController { @RequestMapping("hello") @ResponseBody public String hello() { return "hello springboot"; } }
启动springboot程序
选中包含main方法的类 -> run as -> Java Application(或 Spring Boot App)。或者直接进入BootHelloApplication类 -> 双击main, run as ->Java Application(或 Spring Boot App)。
访问http://localhost:8080/hello
6、springboot程序解释 <--返回目录
7、springboot核心配置文件 <--返回目录
springboot核心配置文件有两种格式:application.properties 或 application.yml
配置springboot访问端口和项目路径:
server.port=8081
server.servlet.context-path=/demo
访问 http://localhost:8081/demo/hello。
8、多环境配置文件 <--返回目录
application.properties
#spring.profiles.active=dev
server.port=8081
server.servlet.context-path=/demo
spring.profiles.active=dev
application-dev.properties
server.port=8082
spring.profiles.active=dev无论是放在最前还是最后,都开启的dev环境的端口。访问 http://localhost:8082/demo/hello。
9、读取自定义配置@Value和@ConfigurationProperties <--返回目录
方式1:@Value读取自定义配置
application-dev.properties自定义配置
boot.name=zs
boot.age=10
使用@Value读取
@Controller public class IndexController { @Value("${boot.name}") private String name; @RequestMapping("hello") @ResponseBody public String hello() { return "hello " + name; } }
方式2:@ConfigurationProperties读取自定义配置
pom.xml添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> <optional>true</optional> </dependency>
java bean 封装自定义属性
package com.oy.controller; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties(prefix = "boot") public class Hello { private String name; private Integer age; public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
使用 java bean的封装的自定义属性
@Controller public class IndexController { @Autowired private Hello hello; @RequestMapping("hello") @ResponseBody public String hello() { return "hello " + hello.getName() + "--" + hello.getAge(); } }
10、SpringBoot实现RestFull <--返回目录
可以参考:springmvc/springboot开发restful API, 使用MockMVC 编写测试用例
@PathVariable注解从url中取值
@Controller public class IndexController { @RequestMapping("hello/{name}/{age}") @ResponseBody public String hello(@PathVariable("name") String name, @PathVariable("age") Integer age) { return "hello " + name + "--" + age; } }
访问:http://localhost:8081/demo/hello/%E5%BC%A0%E4%B8%89/1
11、SpringBoot热部署插件 <--返回目录
eclipse因为每次ctrl+s保存都会进行重新编译, 所以,eclipse(sts)每次保存都会触发springboot重启。
pom.xml添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency>
12、SpringBoot使用拦截器 <--返回目录
可以参考:过滤器/拦截器/AOP----springmvc之拦截器
13、SpringBoot使用Servlet <--返回目录
方式1
方式2
14、SpringBoot使用Filter <--返回目录
可以参考:过滤器/拦截器/AOP----Java Web 三大组件之一过滤器 Filter 和 Spring Boot实战:拦截器与过滤器
方式1
方式2
15、SpringBoot项目字符编码处理 <--返回目录
---