Spring Boot
Spring Boot
犬豪
行我所行,无问西东
展开
-
Spring Boot常见面试题
【Q-01】对于 Spring Boot 来说,最为重要的注解应该就是@SpringBootApplication 了,请谈一下你对这个注解的认识。【RA】Spring Boot 中的@SpringBootApplication 是一个组合注解。除了基本的元注解外,其还组合了三个很重要的注解:@SpringBootConfiguration:其等价于@Configuration,表示当前类为一个配置类。@ComponentScan:该注解用于配置应用中 Bean 的扫描指令,但其并没有进行真正的扫描原创 2020-09-23 13:45:33 · 159 阅读 · 0 评论 -
Spring Boot工程应用篇(六)Web工程配置(注册SpringMVC拦截器)、Servlet、Servlet的Filter
11. Spring Boot 下使用拦截器在非Spring Boot工程中若要使用SpringMVC的拦截器,在定义好拦截器后,需要在Spring配置文件中对其进行注册。但 Spring Boot 工程中没有了 Spring 配置文件,那么如何使用拦截器呢?Spring Boot 对于原来在配置文件配置的内容,现在全部体现在一个类中,该类需要继承自 WebMvcConfigurationSupport 类,并使用@Configuration 进行注解,表示该类为一个JavaConfig 类,其充当配置原创 2020-09-23 13:17:11 · 150 阅读 · 0 评论 -
Spring Boot工程应用篇(五)整合Dubbo
10. Spring Boot 整合Dubbo10.1 步骤总结(1) 服务提供者工程添加各种依赖在启动类上添加@EnableDubboConfiguration 注解,开启 Dubbo 自动配置修改配置文件在启动类上添加@EnableTransactionManagement 注解,开启 Dubbo 自定义的事务管理器一定要加这个注解,dubbo的事务管理器是自己实现的,如果不开启事务管理器,相当于这个dubbo应用没有完全启动在 Service 实现类上添加阿里的@Service 注原创 2020-09-23 13:05:37 · 248 阅读 · 0 评论 -
Spring Boot工程应用篇(四)整合Mybatis、整合事务、整合日志、整合Redis
6. Spring Boot 整合Mybatis6.1 总步骤在 pom 中导入三个依赖:MyBatis 与 Spring Boot 整合依赖、MySQL 驱动依赖、Druid 依赖将 dao 目录注册为资源目录在 Dao 接口上添加@Mapper 注解在主配置文件中注册三类信息:映射文件、实体类别名、数据源2.6.2 需求完成一个简单的注册功能。2.6.3 定义工程复制 06-jsp 工程,并重命名为 07-mybatis。2.6.4 修改 pom 文件导入三个依赖:mybati原创 2020-09-23 12:49:51 · 161 阅读 · 0 评论 -
Spring Boot工程应用篇(三)读取自定义配置(主配置文件、自定义配置文件)、内嵌tomcat使用JSP页面
4. 读取自定义配置自定义配置,可以是定义在主配置文件中的自定义属性,也可以是自定义配置文件中的属性。4.1 读取主配置文件中的属性(1) 定义工程复制Spring Boot 快速入门中的工程,并重命名为 04-readConfig。(2) 修改 SomeController 类读取监听的端口号。在@Value 注解中通过${ }符号可以读取指定的属性值。4.2 读取主配置文件中的自定义配置(1) 修改主配置文件在配置文件中添加如下自定义配置。(2) 修改 SomeControlle原创 2020-09-23 11:20:20 · 209 阅读 · 0 评论 -
Spring Boot工程应用篇(二)多环境选择(相同代码运行在不同环境、不同环境执行不同实现类、单配置文件实现多环境)
3. 多环境选择3.1 什么是多环境选择以下两种场景下需要进行“多环境选择”。(1) 相同代码运行在不同环境在开发应用时,通常同一套程序会被运行在多个不同的环境,例如,开发、测试、生产环境等。每个环境的数据库地址、服务器端口号等配置都会不同。若在不同环境下运行时将配置文件修改为不同内容,那么,这种做法不仅非常繁琐,而且很容易发生错误。此时就需要定义出不同的配置信息,在不同的环境中自动选择不同的配置。(2) 不同环境执行不同实现类在开发应用时,有时不同的环境,需要运行的接口的实现类也是不同的。例原创 2020-09-23 10:58:39 · 1121 阅读 · 0 评论 -
Spring Boot工程应用篇(一)(自定义异常页面、单元测试)
1. 自定义异常页面对于 404、405、500 等异常状态,服务器会给出默认的异常页面,而这些异常页面一般都是英文的,且非常不友好。我们可以通过简单的方式使用自定义异常页面,并将默认状态码页面进行替换。直接在Spring Boot 快速入门中的程序上修改即可,无需创建新的工程。1.1 定义目录在 src/main/resources 目录下再定义新的目录 public/error,必须是这个目录名称。1.2 定义异常页面在 error 目录中定义异常页面。这些异常页面的名称必须为相应的状态码,原创 2020-09-23 10:41:18 · 112 阅读 · 0 评论 -
Spring Boot 如何在Servlet 3.0以下的环境中部署war应用
Spring Boot的应用需要在Servlet3.0容器中运行,我们知道Servlet 3.0是不需要配置web.xml的。如果想在Servlet2.5容器中运行需要做一下改变:第一步,引入spring-boot-legacy包:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-legacy</artifactId>原创 2020-09-23 10:18:48 · 197 阅读 · 0 评论 -
Spring Boot Actuator 监控器
Actuator 监控器Actuator 是 Spring Boot 提供的一个可插拔模块,用于对工程进行监控。其通过不同的监控终端实现不同的监控功能。Spring Boot 的 Actuator 可以部署在每个工程中,实现对每个工程的监控。1. 基本环境搭建随便一个 Spring Boot 工程中都可以使用 Actuator 对其进行监控。(1) 导入依赖<dependency> <groupId>org.springframework.boot</grou原创 2020-09-22 22:04:49 · 445 阅读 · 0 评论 -
Spring Boot 快速入门(二)主配置文件、yml配置文件语法
SpringBoot 的主配置文件编辑器Spring Boot 的主配置文件是 src/main/resources 中默认创建的 spring.properties 文件。该文件打开后是没有自动提示功能的。此时可以打开 Project Structure 窗口,在 Modules 中选中没有自动提示的工程,点击+号,找到 Spring,将其添加可以。此时的配置文件就有了自动提示功能,包括后面的 yml 文件也有了自动提示。简单尝试运行工程后,查看日志文件可以看到端口号与应用的根的确发生的变化。原创 2020-09-22 21:50:07 · 280 阅读 · 0 评论 -
基于 war 的 Spring Boot 工程
基于 war 的 Spring Boot 工程Spring Boot 工程被打为了 Jar 包,以可执行文件的形式出现的,其原理是使用了 Spring Boot 内嵌的 Tomcat 作为 Web 服务器来运行 web 应用的。新版 Dubbo 的监控中心工程就是典型的应用。但在实际生产环境下,对于访问量不大的应用,直接以 Jar 包的形式出现,使用起来是非常方便的,不用部署了。但对于访问量较大的 Web 工程,我们不能使用 Tomcat,而要使用更为高效的商业 web 容器,例如 JBOSS、WebL原创 2020-09-22 20:54:11 · 204 阅读 · 0 评论 -
SpringBoot内置tomcat启动原理、以及SpringBoot初始化Servlet的源码分析
SpringBoot内置tomcat启动原理前言我们知道SpringBoot工程是可以被打成jar包,直接运行jar包启动的,那么为什么不用部署到web服务器也能够像web一样访问呢?其本质原因就是springBoot工程内嵌了一个tomcat,jar包方式启动以main方法作为入口执行代码的时候,底层启动了一个tomcat。内置tomcat依赖如果我们用springBoot开发web工程,通常都会导入如下依赖:<dependency> <groupId>org.s原创 2020-09-22 20:35:53 · 2824 阅读 · 3 评论 -
Spring Boot 快速入门
1. Spring Boot 简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot 致力于在蓬勃发展的快速应用开发领域(rapidapplication development)成为领导者。 简单来说,SpringBoot 可以简化 Spring 应用程序的开发,使我们不再需要 Spring 配置文件及 we原创 2020-09-22 12:14:53 · 275 阅读 · 0 评论 -
Spring Boot 自定义Starter实现自动配置
Spring Boot 自定义 Starter前面的代码中,无论是 Spring Boot 中使用 Web、Test,还是 MyBatis、Dubbo,都是通过导入一个相应的 Starter 依赖,然后由 Spring Boot 自动配置完成的。那么,如果我们自己的某项功能也想通过自动配置的方式应用到 Spring Boot 中,为 Spring Boot 项目提供相应支持,需要怎样实现呢?同样,我们需要定义自己的 Starter。1. 手写 Starter1.1 需求下面我们自定义一个我们自己的原创 2020-09-21 22:11:41 · 570 阅读 · 0 评论 -
SpringBoot的application.yml配置文件加载流程分析
application.yml 的加载流程分析application.yml 文件对于 Spring Boot 来说是核心配置文件,至关重要,那么,该文件是如何加载到内存的呢?需要从启动类的 run()方法开始跟踪。1. 启动方法 run()跟踪@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Appl原创 2020-09-21 22:05:06 · 1183 阅读 · 0 评论 -
Spring Boot 自动配置源码分析(举例:Spring Boot 与 Redis 的整合、MyBatis 与 Spring Boot 的整合)
1. 自动配置源码解析使用 Spring Boot 开发较之以前的基于 xml 配置式的开发,要简捷方便快速的多。而这完全得益于 Spring Boot 的自动配置。下面就通过源码阅读方式来分析自动配置的运行原理。1.1 解析@SpringBootApplication打开启动类的@SpringBootApplication 注解源码。我们发现@SpringBootApplication 注解其实就是一个组合注解。注解是 JDK5 中的新特性(2004 年),Spring 第一个版本是 2003原创 2020-09-21 21:51:21 · 177 阅读 · 0 评论