文章目录
- 零、学习目标
- 一、Spring Boot框架概述
- (一)由Spring到Spring Boot
- (二)Spring Boot框架的核心功能
- (三)Spring Boot框架的应用
- 二、使用Maven方式构建Spring Boot项目
- (一)创建Maven项目HelloWorld01
- (二)修改Maven项目配置文件pom.xml
- (三)创建启动类HelloWorld01Application
- (四)创建控制器HelloWorld01Controller
- (五)运行启动类HelloWorld01Application
- (六)在浏览器里访问http://localhost:8080/hello
- (七)修改控制器,启动应用,查看效果
- (八)定制Banner
- 1、在resources目录下创建banner.txt文件
- 2、通过http://patorjk.com/software/taag网站生成字符
- 3、将网站生成的字符复制到banner.txt文件里
- 4、启动应用程序,查看启动图案
- 5、关闭Banner
- 三、使用Spring Initializr方式构建Spring Boot项目
- (一)创建Spring Boot项目HelloWorld02
- (二)创建控制器HelloWorld02Controller
- (三)运行启动类HelloWorld02Application
- (四)在浏览器里访问http://localhost:8080/hello
- (五)修改控制器,启动应用,查看效果
- (六)利用控制器返回页面
- 1、添加thymeleaf依赖
- 2、准备图片作为静态资源
- 3、创建首页
- 4、修改控制器,添加映射方法,负责返回页面
- 5、启动应用,访问http://localhost:8080/hw02/index
- (七)演示一个控制器方法配多个映射路径
- 1、给hello()方法设置三个映射路径
- 2、启动应用,测试效果
- 四、Spring Boot自动配置里的WebProperties类
- 五、课后作业
- 任务1、创建Spring Boot项目输出学生信息
- 任务2、让HelloWorld02实现页面跳转功能
零、学习目标
- 了解Spring Boot框架的优点
- 掌握使用Maven方式构建Spring Boot项目
- 掌握使用Spring Initializr方式构建Spring Boot项目
一、Spring Boot框架概述
- Spring Boot官网:https://spring.io/projects/spring-boot
(一)由Spring到Spring Boot
- 早期版本的Spring专注于XML配置,开发一个程序需要配置各种XML配置文件。为了简化开发,在Spring 2.x版本开始引入少量的注解,由于支持的注解不是很多且功能尚不完善,所以只能辅助使用。
- 随着实际生产中敏捷开发的需要,以及Spring注解的大量出现和功能改进,到了Spring 4.x版本基本可以脱离XML配置文件进行项目开发,多数开发者也逐渐感受到了基于注解开发的便利,因此,在Spring中使用注解开发逐渐占据了主流地位。与此同时,Pivotal团队在原有Spring框架的基础上通过注解的方式进一步简化了Spring框架的使用,并基于Spring框架开发了全新的Spring Boot框架。
(二)Spring Boot框架的核心功能
- 独立运行的Spring项目
- 内嵌Servlet容器
- 提供starter简化Maven配置
- 自动配置Spring
- 准生产的应用监控
- 无代码生成和xml配置
(三)Spring Boot框架的应用
- Spring Boot框架本身并不提供Spring框架的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于Spring框架的应用,并且在开发过程中大量使用“约定优先配置”(convention over configuration)的思想来摆脱Spring框架中各种复杂的手动配置,同时衍生出了Java Config(取代传统XML配置文件的Java配置类)这种优秀的配置方式。也就是说,Spring Boot并不是替代Spring框架的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具,同时Spring Boot还集成了大量常用的第三方库配置(例如Jackson、JDBC、Redis、Mail等)。使用Spring Boot开发程序时,几乎是开箱即用(out-of-the-box),大部分的Spring Boot应用都只需少量的配置,这一特性更能促使开发者专注于业务逻辑的实现。
- 另外,随着近几年微服务开发的需求和火爆,怎样快速、简便地构建一个准生产环境的Spring应用也是摆在开发者面前的一个难题,而Spring Boot框架的出现恰好完美的解决了这些问题,同时内部还简化了许多常用的第三方库配置,使得微服务开发更加便利。
二、使用Maven方式构建Spring Boot项目
(一)创建Maven项目HelloWorld01
- 选择创建的项目类型 - Maven
- 设置Maven项目Name、Location、GroupId与ArtifactId
– Name:HelloWorld01
– Location:D:\IdeaProjects\HelloWorld01
– GroupId:net.hw.lesson01
– ArtifactId:HelloWorld01
- 单击【Finish】按钮
(二)修改Maven项目配置文件pom.xml
- pom: Project Object Model - 项目对象模型
- 添加parent和web的起步器依赖
- 查看pom.xml文件内容
<?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
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.hw.lesson01</groupId>
<artifactId>HelloWorld01</artifactId>
<version>1.0-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.4.5</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
(三)创建启动类HelloWorld01Application
- 在
src/main/java
目录里创建net.hw.lesson01
包
- 在
net.hw.lesson01
包里创建启动类HelloWorld01Application
package net.hw.lesson01;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 功能:HelloWorld01入口类
* 作者:华卫
* 日期:2021年04月21日
*/
@SpringBootApplication
public class HelloWorld01Application {
public static void main(String[] args) {
SpringApplication.run(HelloWorld01Application.class, args);
}
}
- 启动类必须添加注解符
@SpringBootApplication
- 在主方法里,利用
SpringApplication
类的run()静态方法启动HelloWorldApplication类的实例
(四)创建控制器HelloWorld01Controller
- 控制器是用于Web访问的
- 在
net.hw.lesson01
包里创建controller子包,然后在子包里创建控制器HelloWorld01Controller
package net.hw.lesson01.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 功能:HelloWorld01控制器
* 作者:华卫
* 日期:2021年04月21日
*/
@RestController
public class HelloWorld01Controller {
@GetMapping("/hello")
public String hello() {
return "<h3>Hello Spring Boot World!</h3>";
}
}
- 控制器添加注解符
@RestController
,该注解为组合注解,等同于Spring中@Controller
+@ResponseBody
注解 - 方法添加注解符
@GetMapping("/hello")
,等同于Spring框架中@RequestMapping(RequestMethod.GET)
注解
(五)运行启动类HelloWorld01Application
(六)在浏览器里访问http://localhost:8080/hello
(七)修改控制器,启动应用,查看效果
-
修改控制器
HelloWorldController
-
运行启动类
HelloWorld01Application
-
在浏览器里访问
http://localhost:8080/hello
-
在浏览器里访问
http://localhost:8080/hw01/hello
(八)定制Banner
1、在resources目录下创建banner.txt文件
2、通过http://patorjk.com/software/taag网站生成字符
3、将网站生成的字符复制到banner.txt文件里
4、启动应用程序,查看启动图案
5、关闭Banner
-
修改入口程序代码
-
启动应用,查看效果
-
大家可以看到,项目启动图案消失无踪了。
三、使用Spring Initializr方式构建Spring Boot项目
(一)创建Spring Boot项目HelloWorld02
-
创建项目,选择项目类型 - Spring Initializr
-
设置项目相关属性
-
注意:Artifact的值不能包含大写字母,Name属性值可以包含大写字母
-
添加Spring Web依赖
-
设置项目名称与保存位置
-
单击【Finish】按钮,查看生成的Spring Boot项目HelloWorld02
-
查看自动生成的pom.xml文件
<?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.4.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>net.hw.lesson01</groupId>
<artifactId>helloworld02</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>HelloWorld02</name>
<description>Demo 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>
- 查看启动类HelloWorld02Application
(二)创建控制器HelloWorld02Controller
- 在net.hw.lesson01包里创建controller子包,然后在子包里创建HelloWorld02Controller
package net.hw.lesson01.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 功能:HelloWorld02控制器
* 作者:华卫
* 日期:2021年04月21日
*/
@Controller
public class HelloWorld02Controller {
@ResponseBody
@RequestMapping("/hello")
public String hello() {
return "<h3>你好,Spring Boot世界!</h3>";
}
}
- 大家可以跟HelloWorld01项目的控制器HelloWorld01Controller比较一下
(三)运行启动类HelloWorld02Application
(四)在浏览器里访问http://localhost:8080/hello
(五)修改控制器,启动应用,查看效果
-
修改控制器
HelloWorld02Controller
-
运行启动类
HelloWorld02Application
-
在浏览器里访问
http://localhost:8080/hello
-
在浏览器里访问
http://localhost:8080/hw02/hello
-
小结:使用Spring Boot框架实现Web功能,比在Spring框架里使用Spring MVC实现Web功能简洁很多,不需要Spring配置文件、Spring MVC配置文件,也不需要配置web.xml文件,只要添加了web依赖,直接就可以使用控制器来进行相应的处理,比如返回字符串数据。
(六)利用控制器返回页面
1、添加thymeleaf依赖
- 在pom.xml文件里添加thymeleaf依赖
2、准备图片作为静态资源
- 在static目录里创建images目录,然后在images目录里放一张图片
3、创建首页
- 在templates目录里创建index.html页面
4、修改控制器,添加映射方法,负责返回页面
5、启动应用,访问http://localhost:8080/hw02/index
(七)演示一个控制器方法配多个映射路径
1、给hello()方法设置三个映射路径
2、启动应用,测试效果
- 访问
http://localhost:8080/hw02/hello
- 访问
http://localhost:8080/hw02/hi
- 访问
http://localhost:8080/hw02/hey
四、Spring Boot自动配置里的WebProperties类
五、课后作业
任务1、创建Spring Boot项目输出学生信息
- 创建
Spring Boot
项目StudentInfo
- 创建控制器
StudentInfoController
- 运行启动类,在浏览器访问
http://localhost:8080/student
任务2、让HelloWorld02实现页面跳转功能
- 创建登录页面login.html
- 在首页index.html添加跳转到登录页面的超链接
- 在控制器里编写负责页面跳转的映射方法
- 启动应用,查看效果