01SpringBoot概述
现在互联网后端开发中,JavaEE占据了主导地位。对JavaEE开发,首选框架是Spring框架。在传统的Spring开发中,需要使⽤⼤量的与业务⽆关的XML配置才能使Spring框架运行起来,这点备受许多开发者诟病。随着Spring4.x发布,Spring已经完全脱离XML,只使用注解就可以运行项目。为了进⼀步简化Spring应用的开发,SpringBoot诞生了。它是由Pivotal团队提供的全新框架,其设计⽬的是简化Spring应用的搭建及开发过程,并迎合时下流行的分布式微服务设计思想,越来越多企业在使用SpringBoot。
之前开发javaEE项目的过程
1. web.xml配置:SpringMVC核⼼控制器(DispatchServlet),Spring容器监听器,编码过滤器....
2. Spring 配置:包扫描(service、dao),配置数据源,配置事务....
3. SpringMVC配置:包扫描(controller),视图解析器,注解驱动,拦截器,静态资源....
4. ⽇志配置
5. 少量业务代码
6. …
7. 部署 Tomcat 调试,每次测试都需要部署
8. …
以上步骤很繁琐,在使用SpringBoot后,超简单!无需配置!!无感Tomcat!超迅速搭建功能强大的整套 Web!
SpringBoot功能
1) 自动配置
Spring Boot的自动配置是一个运行时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定Spring配置应该用哪个,不该用哪个。该过程是SpringBoot自动完成的。
2) 起步依赖
起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。
简单的说,起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。
3) 辅助功能
提供了一些大型项目中常见的非功能性特性,如嵌入式服务器、安全、指标,健康检测、外部配置等。
注意:Spring Boot 并不是对 Spring 功能上的增强,而是提供了一种快速使用 Spring 的方式。
2创建SpringBoot工程
2.1方式1
采用maven搭建工程
步骤:
①创建Maven项目
参考博客:02idea中创建maven工程_技术改变世界-CSDN博客_idea创建maven工程
②导入SpringBoot起步依赖
<?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>
<!--继承SpringBoot⽗POM⽂件-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
<groupId>org.example</groupId>
<artifactId>hello</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<!--web 开发的相关依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
</project>
③编写引导类
/**
* 引导类。 SpringBoot项目的入口
*/
@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class,args);
}
}
@SpringBootApplication默认会扫描该配置类中的所有的Bean,并且会扫描该配置类相同包中和其子包下所有的bean
④定义Controller
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello(){
return " hello Spring Boot !";
}
}
⑤运行测试
2.2方式2
快速构建SpringBoot工程(本人使用21版idea)
SpringBoot起步依赖原理分析
-
在spring-boot-starter-parent中定义了各种技术的版本信息,组合了一套最优搭配的技术版本。
-
在各种starter中,定义了完成该功能需要的坐标合集,其中大部分版本信息来自于父工程。
-
我们的工程继承parent,引入starter后,通过依赖传递,就可以简单方便获得需要的jar包,并且不会存在版本冲突等问题。
3SpringBoot热部署
<!--spring-boot开发⼯具jar包,⽀持热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
但还需注意:加入坐标之后,如果想要代码立即生效,必须在修改代码之后进行代码构建。默认情况IDEA不会自动构建,需要手动构建。如图两处地方均可。
4简化部署
把项目打成jar包,直接在目标服务器执行即可。
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>