SpringBoot 相当于不需要配置文件的 Spring + Spring MVC
SpringBoot 简化 Spring 和 SpringMVC 的使用
核心还是 IoC 容器
特点
使用 SpringBoot 的初始化器
使用 Maven 创建项目
spring-boot-starter-parent
spring-boot-starter-web
44
<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.0modelVersion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.6.4version>
<relativePath/>
parent>
<groupId>com.examplegroupId>
<artifactId>demo2artifactId>
<version>0.0.1-SNAPSHOTversion>
<name>demo2name>
<description>demo2description>
<properties>
<java.version>1.8java.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-thymeleafartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-configuration-processorartifactId>
<optional>trueoptional>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<optional>trueoptional>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
exclude>
excludes>
configuration>
plugin>
plugins>
build>
project>
@Async
@EnableAsync
spring-boot-starter-mail
MainSenderAuutoConfig
spring:
mail: # 邮箱配置
host: smtp.qq.com # 发送的主机服务器:qq
username: 2217794007@qq.com # 发件人账号
password: 自己申请 # QQ邮箱的授权码
default-encoding: UTF-8 # 编码方式
properties: # 邮件类型配置
mail:
smtp:
auth: true
starttls:
enable: true
required: true
// 自动注入框架对象,可以完成发送邮件的功能
@Autowired
JavaMailSender sender;
/**
* 发送邮件:普通格式、html 格式
* @param multipart 是否允许多文件
* @param html 是否发送 html 格式
* @param subject 邮件标题
* @param text 邮件内容
* @param from 发送账号
* @param to 接收账号
*/
public void sendMessage(Boolean multipart, Boolean html,
String subject, String text,
String from, String to){
MimeMessage mes = sender.createMimeMessage();
try {
// 帮助创建邮件、支持多文件、指定编码方式
MimeMessageHelper helper = new MimeMessageHelper (mes, multipart, "UTF-8");
helper.setSubject(subject);
// 添加邮件内容、允许 html 格式
helper.setText(text,html);
// 添加附件
helper.addAttachment("废物.jpg", new File("D:\\Pictures\\背.jpg"));
helper.setTo(to);
helper.setFrom(from);
// 发送邮件
sender.send(mes);
} catch (MessagingException e) {
e.printStackTrace();
}
}
TaskScheduler
:任务调度TaskExecutor
:任务执行@EnableScheduling
:开启定时功能@Sheduled
:执行的时间
30 15 10 * * ?
10:15:30
执行pom.xml 文件 配置内嵌 tomcat 对 jsp 的解析包
<dependency>
<groupId>org.apache.tomcat.embedgroupId>
<artifactId>tomcat-embed-jasperartifactId>
dependency>
配置对 webapp 目录下 jsp 资源到指定目录的编译
<build>
<finalName>Spring_boot_demofinalName>
<resources>
<resource>
<directory>src/main/webappdirectory>
<targetPath>META-INF/resourcestargetPath>
<includes>
<include>**/*.*include>
includes>
resource>
<resource>
<directory>src/main/javadirectory>
<includes>
<include>**/*.*include>
includes>
resource>
<resource>
<directory>src/main/resourcesdirectory>
<includes>
<include>**/*.*include>
includes>
resource>
resources>
build>
集成 mybatis 时配置 mapper.xml 文件的编译
进行 src/main/resources 资源目录下的文件编译
定义打包后的文件名
指定打包方式为 war
<packing>warpacking>
创建 webapp 资源目录,其中创建 jsp 页面;编写 controller 处理请求
配置视图解析器:application.properties
# 配置视图解析器
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp
主启动类继承 SpringBootServletInitializer
//主启动类 继承 SpringBootServletInitializer
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure( SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
}
使用 maven 将程序打包
将程序包放到 tomcat 发布目录之下(webapps)
对照依赖的 tomcat 版本和外部 tomcat 版本
启动 tomcat:端口号为本地 tomcat 端口号
前三步跟打 war 包相同
不需要继承 SpringBootServletInitializer
配置插件
指定 SpringBoot 的 maven-plugin 插件版本
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
<version>1.4.2.RELEASEversion>
plugin>
使用 maven 打包
可以直接启动
命令行窗口直接使用命令启动
java -jar springboot_demo.jar
可将命令封装到 Linux 的 shell 脚本(上线部署)
# #!/bin/sh 是对shell的声明,说明用的shell类型及其路径
# #!/bin/sh 指此脚本使用 /bin/sh 解释执行
# #!是特殊的表示符,后跟解释此脚本的shell的路径
# 如果没有声明,则脚本将在默认的shell中执行
# 默认shell由用户所在的系统定义为执行shell脚本的shell.
# 表示使用 Linux shell 脚本
#!/bin/sh
# springboot_demo.jar 和 run.sh 文件在同一目录
java -jar springboot_demo.jar
chmod 777 run.sh
启动脚本:./run.sh
独立启动,不依赖外部 tomcat
Spring + SpiringMVC + SpringBoot 部分注解
content-type
不是默认的application/x-www-form-urlcoded
编码的内容