Spring Boot 基础知识

        Spring Boot 是 Spring 开源组织下的子项目,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。

        Spring Boot 可以不需要独立的容器运行,内置了 Tomcat/ Jetty 等容器。

        使用 Spring Data-JPA 可以实现将可分页的传递给存储库方法。

        为了实现 Spring Boot 的安全性,我们使用 spring-boot-starter-security 依赖项,并且必须添加安全配置。它只需要很少的代码。配置类将必须扩展WebSecurityConfigurerAdapter 并覆盖其方法。

Spring Boot 主要优点

容易上手,提升开发效率;

没有繁琐的配置;

提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等;

没有代码生成,也不需要XML配置;

避免大量的 Maven 导入和各种版本冲突。

spring boot 核心的两个配置文件

        bootstrap (. yml 或者 . properties):boostrap 由父 ApplicationContext 加载的,比 applicaton 优先加载,配置在应用程序上下文的引导阶段生效。一般来说我们在 Spring Cloud Config 或者 Nacos 中会用到它。且 boostrap 里面的属性不能被覆盖;

        application (. yml 或者 . properties): 由ApplicatonContext 加载,用于 spring boot 项目的自动化配置。

在自定义端口上运行 Spring Boot 应用程序

        为了在自定义端口上运行 Spring Boot 应用程序,可以在application.properties 中指定端口。

server.port = 8090

Spring Boot 的核心注解以及它主要由哪几个注解组成的

        启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:

        @SpringBootConfiguration:实现配置文件的功能。

        @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,

如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

        @ComponentScan:Spring组件扫描。

Spring Boot 自动配置原理是

        注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自动配置的核心;

        @EnableAutoConfiguration 给容器导入META-INF/spring.factories 里定义的自动配置类;

        筛选有效的自动配置类;

        每一个自动配置类结合对应的 xxxProperties.java 读取配置文件进行自动配置功能

运行 Spring Boot 的方式

                打包用命令或者放到容器中运行;

                用 Maven/ Gradle 插件运行;

                直接执行 main 方法运行

开启 Spring Boot 特性方式

                继承spring-boot-starter-parent项目

                导入spring-boot-dependencies项目依赖

使用 Spring Boot 实现异常处理

        Spring 提供了一种使用 ControllerAdvice 处理异常的非常有用的方法。 我们通过实现一个 ControlerAdvice 类,来处理控制器类抛出的所有异常。

微服务中实现 session 共享

        在微服务中,一个完整的项目被拆分成多个不相同的独立的服务,各个服务独立部署在不同的服务器上,各自的 session 被从物理空间上隔离开了,但是经常,我们需要在不同微服务之间共享 session ,常见的方案就是 Spring Session + Redis 来实现 session 共享。将所有微服务的 session 统一保存在 Redis 上,当各个微服务对 session 有相关的读写操作时,都去操作 Redis 上的 session 。这样就实现了 session 共享,Spring Session 基于 Spring 中的代理过滤器实现,使得 session 的同步操作对开发人员而言是透明的,非常简便。

Spring Boot 中实现定时任务

        Spring Boot 中对于定时任务的支持主要还是来自 Spring 框架。在 Spring Boot 中使用定时任务主要有两种不同的方式:使用 Spring 中的    @Scheduled 注解,使用第三方框架 Quartz。

        使用 Spring 中的 @Scheduled 的方式主要通过 @Scheduled 注解来实现。

        使用 Quartz ,则按照 Quartz 的方式,定义 Job 和 Trigger 即可。

JavaConfig

        Spring JavaConfig 是 Spring 社区的产品,它提供了配置 Spring IoC 容器的纯Java 方法。因此它有助于避免使用 XML 配置。使用 JavaConfig 的优点在于:

        (1)面向对象的配置。一个配置类可以继承另一个,重写它的@Bean 方法等。

        (2)减少或消除 XML 配置。减少在 XML 和 Java 之间来回切换。JavaConfig 为开发人员提供了一种纯 Java 方法来配置与 XML 配置概念相似的 Spring 容器。

        (3)类型安全和重构友好。现在可以按类型而不是按名称检索 bean,不需要任何强制转换或基于字符串的查找。

——————————————————————————————————————

笔记内容来源: https://blog.csdn.net/ThinkWon/article/details/104397299

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值