
SpringBoot
程序新视界
个人公众号【程序新视界】,一个硬技术,软实力同步提升的平台。《Spring Boo技术内幕:架构设计与实现原理》作者,《深入以太坊智能合约开发》联合作者之一。主要从事于三方支付行业。
-
原创 Spring Boot Actuator监控使用详解
在企业级应用中,学习了如何进行SpringBoot应用的功能开发,以及如何写单元测试、集成测试等还是不够的。在实际的软件开发中还需要:应用程序的监控和管理。SpringBoot的Actuator模块实现了应用的监控与管理。Actuator简介生产系统中,往往需要对系统实际运行的情况(例如cpu、io、disk、db、业务功能等指标)进行监控运维。在SpringBoot项目中Actuator模块...2019-11-20 07:04:272211
0
-
原创 Spring注解之@Configuration和@Bean使用详解
如果此刻不方便阅读,倾情为你准备了PDF版本,关注微信公众回复“spring配置”即可获得。前言Spring3.0之前要使用Spring必须要有一个xml配置文件,而Spring3.0之后注解慢慢登上舞台,通过注解@Configuration和@Bean可以完全搞定。此时,注解和xml配置形成了相互协作与竞争的关系。随着Springboot的推广,注解的使用在Spring中大放光彩,xml...2019-02-25 18:54:228061
0
-
转载 Spring Boot 最流行的 16 条最佳实践解读!
Spring Boot是最流行的用于开发微服务的Java框架。在本文中,我将与你分享自2016年以来我在专业开发中使用Spring Boot所采用的最佳实践。这些内容是基于我的个人经验和一些熟知的Spring Boot专家的文章。在本文中,我将重点介绍Spring Boot特有的实践(大多数时候,也适用于Spring项目)。以下依次列出了最佳实践,排名不分先后。使用自定义BOM来维护第三方依赖...2019-03-26 20:36:34572
0
-
原创 5分钟快速上手Spring Boot
概述与一些动态语言(如Ruby、Groovy、Node.js)相比,Java开发显得异常笨重。接触过外包项目的朋友也有所了解,如果要开发一个小型项目,首选的编程语言并不是Java,而是PHP。为什么呢?因为开发起来快!目前很多大型互联网公司的早起编程语言都是类似PHP这种能够快速开发的语言。既然问题出现了,那必然有解决问题的方案,SpringBoot做到了。SpringBoot是由Pivota...2019-04-01 12:09:521456
2
-
原创 SpringBoot入口类和@SpringBootApplication详解
SpringBoot项目创建完成之后默认会生成一个*Application的入口类,通过该类的main方法即可启动SpringBoot项目。@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)public class SpringbootRunApplication { public static void ...2019-04-06 15:56:024945
0
-
原创 SpringBoot基础之banner玩法解析
SpringBoot项目启动时会在控制台打印一个默认的启动图案,这个图案就是我们要讲的banner。看似简单的banner,我们能够对它做些什么呢?本篇文章就带大家深入了解一下banner的使用(版本:SpringBoot2.1.4)。制作自己的banner第一步:在src/main/resources下面创建banner.txt。第二步:访问网站http://patorjk.com/so...2019-04-07 13:48:572987
2
-
原创 Spring核心模块及功能汇总
如果你在使用Spring,而且没有使用SpringBoot,那么每个Spring的功能都需要引入相应的jar包依赖。而Spring的jar包依赖又有一二十个,很容易混淆,造成编译或运行错误。下面我们就整理一下Spring3和Spring4的核心模块和对应的jar包,方便我们在具体使用的过程中更加清晰的了解到我们都需要什么。Spring3框架结构图Spring4框架结构图与Spring3...2019-03-28 17:21:423769
0
-
原创 SpringBoot基础之配置详解
大家好,我是二师兄,本篇文章为大家讲解SpringBoot相关配置功能,包括application.properties配置文件、外部配置、属性注入等。配置文件基本配置支持创建SpringBoot项目,会在src/main/resources目录下生成application.properties文件,这就是SpringBoot默认指定的配置文件。基本使用方式如下:server.port=8...2019-04-08 11:56:22574
2
-
原创 SpringBoot基础之MockMvc单元测试
SpringBoot创建的Maven项目中,会默认添加spring-boot-starter-test依赖。在《5分钟快速上手SpringBoot》中编写的单元测试使用了MockMvc。本篇文章就围绕MockMvc在SpringBoot中的使用进行讲解。什么是Mock在面向对象的程序设计中,模拟对象(英语:mock object)是以可控的方式模拟真实对象行为的假对象。在编程过程中,通常通过模...2019-04-02 22:58:3424425
17
-
原创 SpringBoot源码解析之应用类型识别
创建SpringBoot项目时,如果不选择starter-web,创建的SpringBoot项目可以正常运行,但运行结束程序便终止了。如果配置starter-web,则正常启动web应用。那么,SpringBoot是如何分辨出来当前应用是为web应用还是其他类型的应用呢?本篇文章带领大家从源码层面进行相应分析。枚举WebApplicationTypeSpringBoot使用枚举类WebAppl...2019-04-21 07:42:161081
2
-
原创 SpringBoot运作原理解析之加载AutoConfiguration
本篇文章带大家了解一下SpringBoot的运作原理之自动配置加载。在此之前可先学习《SpringBoot运行源代码分析》,了解SpringBoot启动的基本流程和涉及到的一些配置文件。说到SpringBoot的运作原理,先来看一下@SpringBootApplication这个注解。在文章《SpringBoot入口类和@SpringBootApplication详解》中已经详细讲解过此入口类和...2019-04-17 11:14:081862
0
-
原创 SpringBoot运行源代码分析
我们知道SpringBoot是基于“约定优于配置”,也知道可以根据starters自动加载和配置相应的服务,那么SpringBoot底层是怎么实现这些操作呢?这篇文章带大家通过源码分析,了解SpringBoot运行原理。SpringApplication的拆解通常创建SpringBoot项目之后,默认的启动代码只有一行,通过默认的配置基本上可以完成大多数的功能,但如果需要对启动流程的扩展,就需...2019-04-14 22:30:21985
0
-
原创 SpringBoot源码解析之main方法推断
在《SpringBoot源码解析之应用类型识别》一文中我们已经了解了SpringBoot是如何推断出应用类型的。在推断出应用类型之后,SpringBoot又进行了main方法的推断。在进行main方法的推断时,主要使用了堆栈信息一层层的判断,来获得main方法。具体源代码如下:private Class<?> deduceMainApplicationClass() { try ...2019-05-02 15:01:101741
2
-
原创 自定义ApplicationContextInitializer接口实现
简介ApplicationContextInitializer是Spring框架提供的接口, 该接口的主要功能就是在接口ConfigurableApplicationContext刷新之前,允许用户对ConfigurableApplicationContext实例做一定的操作。该接口只有一个initialize方法。ApplicationContextInitializer接口源代码该接口只...2019-07-17 09:51:37616
0
-
原创 Spring中ApplicationListener的使用
背景ApplicationListener是Spring事件机制的一部分,与抽象类ApplicationEvent类配合来完成ApplicationContext的事件机制。如果容器中存在ApplicationListener的Bean,当ApplicationContext调用publishEvent方法时,对应的Bean会被触发。这一过程是典型的观察者模式的实现。ApplicationL...2019-07-17 11:24:471552
0
-
原创 Spring Boot通过ApplicationArguments获取args参数
在具体使用Spring Boot的过程中,如果需要获得SpringApplication.run(args)方法传递的参数,那么可通过ApplicationArguments接口来获得。使用方法非常简单,只用在需要获得参数的类中直接注入ApplicationArguments即可,如下代码:@Componentpublic class ArgsBean { @Resource priv...2019-08-13 10:34:076641
3
-
原创 spring 4.3新特性之@RequestMapping注解细化
通常,通过@RequestMapping来对http请求进行注解会采用如下方式:@RequestMapping(value = {&quot;/version&quot;}, method = {RequestMethod.GET})或@RequestMapping(value = {&quot;/login&quot;}, method = {RequestMethod.POST})// 如果没有指定method则同时支持G...2019-02-21 15:33:08727
0
-
转载 Spring 框架和 Spring Boot的前世今生
Spring 框架可以说是Java开发人员使用的最流行的应用程序开发框架之一。它目前由大量提供一系列服务的模块组成。包括模块容器,为构建横切关注点提供支持的面向切面编程(AOP),安全框架,数据存取框架,Web 应用框架和用于模块测试提供支持的类。Spring 框架的所有组件都通过依赖注入粘在一起。依赖注入(也称为控制反转)使设计和测试松散耦合的软件模块变得更容易。多年来 Spring 框架已...2018-12-31 23:56:253001
1
-
原创 Spring boot maven 打包多个main方法引起的异常
异常场景使用Spring boot + maven模式进行开发,当项目进行到一阶段之后,无论执行maven命令中的package还是install,都会出现以下异常:Unable to find a single main class from the following candidates[com.neko.GfeApplication, com.neko.util.UuidUtil]解决过程起2016-08-09 15:59:5013747
4
-
原创 spring boot 更换logo图标
说明在使用spring boot时,浏览器上会显示一个绿色的树叶的图标,那是spring boot的图标。那么如何替换成自己网站的图标呢?步骤在static目录的images目录(也可以放在static下的其他目录)下添加名字为favicon.ico的图标,然后在每个页面添加如下代码,引入即可。<link rel="icon" type="image/x-icon" href="/images/fa2016-09-14 17:18:3024809
3
-
原创 spring boot application.properties文件外部配置
问题说明使用spring boot打jar包的时候,默认将application.properties文件打在了jar包之中。在生产环境,可能需要修改此配置文件并重启。如果在jar包中怎么才能进行修改呢?问题分析spring boot默认允许自定义的application.properties存在以下位置: A、jar包所在目录同级的目录“/config”的子目录下; B、jar包锁在目录的同级2016-09-14 17:47:1412188
3
-
原创 springboot 集成mybatis Invalid bound statement (not found)异常
场景在使用springboot集成mybatis的过程中出现一下异常。经过跟踪发现其实异常与springboot无关,主要是mybatis配置文件的原因。大家遇到类似问题,可直接进行定位。org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.antifraud.mapper.TestM2016-10-11 15:44:4219459
0
-
原创 Spring boot xstream解析UnknownFieldException异常
今天使用xstream解析xml文件,遇到一个特别隐蔽的问题,花费了几乎两个小时才解决。因此,记录一下,帮助其他遇到类似问题的同行们。刚开始通过spring boot启动一个web服务,访问一个指定url,在controller层会去解析一个xml文件,并进行其他业务处理。可是每次请求都会报类似的异常:Caused by: com.thoughtworks.xstream.converters.re2016-10-17 19:57:505312
3
-
原创 Spring ApplicationListener使用方法及问题
使用场景在一些业务场景中,当容器初始化完成之后,需要处理一些操作,比如一些数据的加载、初始化缓存、特定任务的注册等等。这个时候我们就可以使用Spring提供的ApplicationListener来进行操作。用法本文以在Spring boot下的使用为例来进行说明。首先,需要实现ApplicationListener接口并实现onApplicationEvent方法。把需要处理的操作放在onAppl2017-05-12 13:48:2654065
4
-
原创 Spring注解的(List&Map)特殊注入功能
最近接手一个新项目,已经没有原开发人员维护了。项目框架是基于Spring boot进行开发。其中有两处Spring的注解花费了大量的时间才弄明白到底是怎么用的,这也涉及到spring注解的一个特殊的注入功能。首先,看到代码中有直接注入一个List和一个Map的。示例代码如下:@Autowiredprivate List<DemoService> demoServices;@Autowiredpr2017-05-10 09:39:5524285
5
-
原创 Spring boot 数据源未配置异常
问题在使Springboot自动生成的项目框架时如果选择了数据源,比如选择了mysql,生成项目之后,启动会报一下异常:Description:Cannot determine embedded database driver class for database type NONEAction:If you want an embedded database please put a suppor2017-06-17 14:23:4915226
2
-
原创 Intellij IDEA基于Springboot的远程调试
简介本篇博客介绍一下在Intellij IDEA下对Springboot类型的项目的远程调试功能。所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内部状态。方法首先,打开Edit configurations,点击+号,创建一个Remote应用。 填2017-07-12 13:05:5327791
6
-
原创 Intellij IDEA带参数启动Springboot注意事项
问题不同版本的spring-boot-maven-plugin的jvm参数配置有所不同,同时与通过main方法启动springboot程序传递参数也有所不同。分析在运行main方法时,可以通过java -jar 后面通过添加-D的参数即可传递,比如:java -jar -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=52017-07-12 15:20:0116743
0
-
原创 《Drools7.0.0.Final规则引擎教程》之Springboot集成
本来准备按部就班的一章一章更新Drools相关教程,怎么QQ群组(593177274)有朋友继续Springboot与Drools的集成demo,于是抽出时间写了一个,现在拿出来分享一下。加入群组可免费下载demo,也可以在CSDN下载频道下载:Springboot&Drools demopom文件引入了springboot和drools的依赖,同时引入了kie-spring的集成依赖。<depen2017-07-18 17:30:2318425
15
-
原创 Intellij IDEA 2017新特性之Spring Boot相关
前言Intellij IDEA 2017.2.2版本针对Springboot设置了一些特性,本篇博客给搭建简单介绍一下如何使用这些特性。Run Dashboard针对Spring boot提供了Run Dashboard方式的来代替传统的run方法。下面看一下官网提供的面板结构图: 是不是很炫,直接可以通过Dashboard看到Springboot的启动项目,并显示相应的端口等信息,同时还能在这里2017-08-23 12:19:4114058
6
-
原创 Spring boot(SpringMVC)使用mybatis的delete方法返回值
delete操作当我们直接在mysql控制台进行delete操作时执行成功,会返回受影响的行数:mysql> DELETE FROM runoob_tbl WHERE runoob_id=3;Query OK, 1 row affected (0.23 sec)那么,在Mybatis下我们怎么获得是否删除成功,以及删除(受影响)了几条数据呢?Springboot下m...2018-09-14 19:13:203912
0
-
原创 Wagon部署springboot项目读取配置文件错误问题
wagon(瓦工)插件是一个很不错的轻量级,快速部署项目到服务器的插件,针对用中小项目,使用起来十分方便。今天跟大家分享一下自己在使用过程中遇到的一个坑,持续两天时间都没能够解决,最终在多方求助下找到最终原因。问题状况在服务器上直接执行start.sh启动脚本,springboot可以正确启动并且正确加载了同目录级下的application-pro.yml文件。通过wagon执行服务器上...2018-12-19 22:35:38901
1
-
原创 你可能使用了Spring最不推荐的注解方式
前些天新加入项目中的小伙儿写了一段代码,我看到之后,顿时以固有的经验来判断说:Spring的注解不能这样写,不够简洁云云。但本着对技术的钻研精神,还是深入分析比较了一下Spring的注解形式及优缺点。原来,大家最常用的注解方式不是最优的,而是最不推荐的。前言使用Spring框架最核心的两个功能就是IOC和AOP。IOC也就是控制反转,我们将类的实例化、依赖关系等都交由Spring来处理,以...2018-12-31 23:23:163049
3
-
原创 spring boot jsp之Intellij异常
场景描述项目中用到spring boot进行带页面的开发,从github上的simples中下载了对应的spring-boot-sample-web-jsp项目,经简单修改之后死活启动不起来,各种异常。spring-boot以简单容易上手为核心宗旨,可为什么在引入jar时就会出现这么多问题呢?异常信息异常一:2016-06-17 11:04:14.216 ERROR 4684 --- [2016-06-17 11:13:229831
5