Spring Boot 已经建立在现有 spring 框架之上。使用 spring 启动,避免了之前我们必须做的所有样板代码和配置。因此,SpringBoot 可以帮助我们以最少的工作量,更加健壮地使用现有的 Spring 功能。
减少开发成本,提高效率。
使用 JavaConfig 有助于避免使用 XML。
避免大量的 Maven 导入和各种版本冲突。
提供意见发展方法。 通过提供默认值快速开始开发。 没有单独的 Web 服务器需要。这意味着你不再需要启动 Tomca。
减少配置,因为没有 web.xml 文件。
启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:
@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:打开自动配置的功能
@ComponentScan:Spring组件扫描。
SpringBoot的自动配置注解是@EnableAutoConfiguration,点进去发现 @Import的类 中有执行自动加载配置的代码,其中 loadFactoryNames 方法会加载类路径及所有jar包下META-INF/spring.factories配置中映射的自动配置的类。
public static final String FACTORIES_RESOURCE_LOCATION = "META-INF/spring.factories";
-
org.springframework.boot -
spring-boot-devtools -
true
假如有开发、测试、生产三个不同的环境,需要定义三个不同环境下的配置。
applcation.properties
application-dev.properties
application-test.properties
application-prod.properties
需要指定环境时,在applcation.properties文件中指定当前的环境spring.profiles.active=dev,用dev环境
- spring:
- profiles:
- active: dev
springboot实现热部署的原理
深层原理是使用了两个ClassLoader,一个ClassLoader加载那些不会改变的类(第三方jar包),另一个ClassLoader加载会更改的类,称为restartClassLoader ,这样在有代码更改的时候,原来的restartClassLoader被丢弃,重新建一个restartClassLoader,由于需要加载的类相比较少,所以实现了较快的重启时间
为了在自定义端口上运行 Spring Boot 应用程序,您可以在 application.properties 中指定端 口。
server.port = 8090
使用 spring-boot-starter-security 依赖项,并且必须添加安全配置。它只需要很少的代码。配置类将必须扩展 WebSecurityConfigurerAdapter 并覆 盖其方法。
Swagger 广泛用于可视化 API。Swagger 是 用于生成 RESTful Web 服务的可视化表示的工具,规范和完整框架实现。它使文档能够以 与服务器相同的速度更新。
Spring 提供了一种使用 ControllerAdvice 处理异常的非常有用的方法。 我们通过实现一个 ControlerAdvice 类,来处理控制器类抛出的所有异常。