SpringBoot中提供了一系列的条件注解(@Conditional)来实现对@Bean和@Configuration等实例的创建进行约束。这些注解包括: Class Conditions,类条件约束 Bean Conditions,Be
[阅读更多...]-
SpringBoot探索03 – 条件注解
-
SpringBoot探索02 – 启动过程之getSpringFactoriesInstances
最近计划整理下SpringBoot的启动过程以及API请求返回过程,以便支持后续的部分内容,也方便实现一周一文的计划。 先做SpringBoot启动流程分析。 初见 在SpringBoot启动代码的开头部分可以看到如下的内容: 比较显眼的是
[阅读更多...] -
springboot入门08 – 创建非web项目
概述 从开始使用SpringBoot到现在,一直都是在用SpringBoot开发web服务(API服务)。直到前段时间,需要帮其他组的同事写一个非web的简单服务时,才想到Springboot是不是也支持非web项目。 答案是肯定的:spr
[阅读更多...] -
spring feign https配置
前两天需要通过springboot-feign来调用一个https的外部服务接口,因此要实现feign-client的SSL设置。 feign执行http请求通常会调用feign.Client接口的实现。这个接口的默认实现类Default提
[阅读更多...] -
springboot入门07 – 配置文件详解
概述 这一篇主要介绍下SpringBoot配置相关的内容。 通过配置文件,我们可以做到如下事情: 修改springboot的默认配置项 添加自定义配置项 SpringBoot使用全局的配置文件,主配置文件名是固定的:application.
[阅读更多...] -
springboot入门06 – 接口单元测试方案
以前写过关于springboot Controller层单元测试的系列文章(Spring Controller层测试)。但是那几篇文章还是更偏方法论一些,不能直接拿来使用。所以有了这偏内容,目的主要是记录下平时使用的Controller层单
[阅读更多...] -
springboot入门05 – 包装SpringBoot Controller返回值
一个项目使用了SpringBoot,需要对Controller的返回值进行二次包装。包装类结构大致如下: 通过查找资料,找到了两种封装方式。 方法一 第一种方式是替换掉RequestResponseBodyMethodProcessor,这
[阅读更多...] -
springboot入门04 – 使用SpEL表达式
概述 SpEL即Spring表达式语言(Spring Expression Language)。 从我通常的使用场景(API开发)来说,SpEL提供的大部分能力都可以划到奇技淫巧的范畴内。但是在一些场景下如缓存配置、ThymeLeaf取值等
[阅读更多...] -
springboot入门03 – 配置定时任务
概述 在Java环境下创建定时任务有多种方式: 使用while循环配合Thread.sleep(),虽然稍嫌粗陋但也勉强可用 使用Timer和TimerTask 使用ScheduledExecutorService 定时任务框架,如Quar
[阅读更多...] -
查找占用CPU时间最长的线程
记录下查找Java应用占用CPU时间最长的线程的过程。 获取进程ID 使用jps指令获取java服务进程ID: 命令结果如下: 其中19064即是目标java服务进程ID。 查询线程占用时间 使用top -H -p pid指令查询指定进程下
[阅读更多...]