一、什么是SpringBoot
SpringBoot使用“习惯优于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须手动进行配置)的理念让你的项目快速运行起来。
使用 Spring Boot 很容易创建一个独立运行(运行 jar,内嵌 Servlet 容器)、准生产级别的基于 Spring 框架的项目,使用 Spring Boot 你可以不用或者只需要很少的 Spring 配置。简单来说,会用SpringBoot可以避免繁琐的开发步骤和一些复杂的配置,使开发更加容易。
SpringBoot的核心功能:
1)独立运行的 Spring 项目
Spring Boot 可以以 jar 包的形式独立运行,运行一个 Spring Boot 项目只需通过 java–jar xx.jar 来运行。
2)内嵌 Servlet 容器
Spring Boot 可选择内嵌 Tomcat、Jetty 或者 Undertow,这样我们无须以 war 包形式部署项目。
3)提供 starter 简化 Maven 配置
Spring 提供了一系列的 starter pom 来简化 Maven 的依赖加载,例如,当你使用了spring-boot-starter-web 时,会自动加入如图 1 所示的依赖包。
4)自动配置 Spring
Spring Boot 会根据在类路径中的 jar 包、类,为 jar 包里的类自动配置 Bean,这样会极大地减少我们要使用的配置。当然,Spring Boot 只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置 Bean,而 Spring Boot 没有提供支持,则可以自定义自动配置。
5)准生产的应用监控
Spring Boot 提供基于 http、ssh、telnet 对运行时的项目进行监控。
6)无代码生成和 xml 配置
Spring Boot 的神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是 Spring 4.x 提供的新特性。Spring 4.x 提倡使用 Java 配置和注解配置组合,而 Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。
1.建立好相关的依赖
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.2.4.RELEASE
dinglin
springboot-study
0.0.1-SNAPSHOT
springboot-study
Demo project for Spring Boot
1.8
org.springframework.boot
spring-boot-starter-freemarker
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-devtools
runtime
true
mysql
mysql-connector-java
runtime
org.projectlombok
lombok
true
org.springframework.boot
spring-boot-starter-test
test
org.junit.vintage
junit-vintage-engine
org.springframework.boot
spring-boot-maven-plugin
如果出现了以下的SpringBoot应用的启动类,没有报错,说明搭建成功。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringbootStudyApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootStudyApplication.class, args);
}
}
@SpringBootApplication 是一个“三体”结构,实际上它是一个复合注解,它整合了@Configuration、
@EnableAutoConfiguration、@ComponentScan这三个注解,也就是说@SpringBootApplication和这三个注解的作用是对等的。
这三个注解的作用是:
1.@Configuration
标注了 @Configuration 之后,声明为 IoC 容器的配置类。
2.@EnableAutoConfiguration
借助 @Import 的支持,收集和注册特定场景相关的 bean 定义, 将 Spring 调度框架相关的 bean 定义都加载到 IoC 容器。
3.@ComponentScan
自动扫描并加载符合条件的组件或 bean 定义,最终将这些 bean 定义加载到容器中。是一个可有可无的存在,不申明SpringBoot也可以照常运行。
测试一下
先在resource文件下的static包下写一个简单的html代码
登录页面
用户登录
然后运行启动类,在浏览器输入http://localhost:8080/login.html,运行结果:
在这一系列过程中,并没有打war包在Tomcat上运行,而是SpringBoot帮我们完成,这样是开发更加轻松。