spring boot
文章平均质量分 59
Dongguabai
这个作者很懒,什么都没留下…
展开
-
Spring Boot 项目启动后打印 Mapping 地址
【代码】Spring Boot 项目启动后打印 Mapping 地址。原创 2024-01-18 11:48:53 · 2110 阅读 · 0 评论 -
每天学习一点点之 Spring Boot 1.x 升级 2.x 之 allowBeanDefinitionOverriding
本文对 Spring Boot 2.x 中新增的配置进行了简要分析,并通过实际示例说明了这个配置的底层原理并非源自 Spring Boot 2.x。实际上,即使在 Spring Boot 1.x 中,我们也可以实现这个功能,只是 Spring Boot 官方并没有提供现成的配置项。原创 2024-01-10 21:15:15 · 1259 阅读 · 0 评论 -
优化单元测试效率:Spring 工程启动耗时统计
数据库连接可以延迟初始化移除无用的依赖注入内部封装的 Dubbo 组件存在很多优化点,如:Dubbo Provider 在本地没必要对外暴露服务懒加载创建 Reference 代理尽管不同项目的耗时原因各有差异,但只要能够确定具体的耗时点,问题就不会太棘手。本文介绍了一个简单的工具,用于获取 Spring Bean 初始化的时间,借此能够准确定位具体的 Bean,从而有针对性地进行优化。通过优化这些耗时操作,就能够有效提升整个项目的启动速度,显著增强研发工作的效率。原创 2023-10-24 21:09:07 · 742 阅读 · 0 评论 -
聚合maven+spring-boot打包可执行jar
聚合maven+spring-boot的搭建很简单,和普通的聚合maven没有什么区别。聚合maven+spring-boot打包成可执行jar就不是那么容易了,主要是因为spring-boot的坑有点多啊。普通聚合maven打包我就不说了。就说说和spring-boot一起打包的那些比较大的坑吧。 一、spring-boot-maven-plugin打包出来的jar是不可依赖的 比如我有一个root工程,type为pom,下面两个spring-boot工程作为它的m...转载 2021-07-21 16:26:39 · 708 阅读 · 0 评论 -
一次Spring Boot Jar 中的配置不生效的记录
先说结论(没有从源码的角度去分析,太费时了,这里仅供参考和提供一种解决思路):spring.profiles.active 参数决定加载对应环境的配置;SpringBoot 会默认加载(目录有效,profile 生效的)application.yml/properties 和 application-xx.yml/properties 文件,同时 application-xx.yml/properties 会覆盖 application.yml 的内容,即使 xx 并没有在 spring.profil原创 2021-07-19 16:03:49 · 1437 阅读 · 0 评论 -
An invalid domain [] was specified for this cookie问题解决
在tomcat8.0升级到8.5时会发生这样的问题java.lang.IllegalArgumentException: An invalid domain [.tencent.xxx.com] was specified for this cookie at org.apache.tomcat.util.http.Rfc6265CookieProcessor.validateDomain(Rfc6265CookieProcessor.java:203) at org.转载 2021-06-03 19:03:57 · 2978 阅读 · 1 评论 -
使用 CommandLineRunner 要注意的地方
CommandLineRunner 的原理是在 SpringBoot 启动会执行这个方法:要注意的是这里是一个个执行所有的 CommandLineRunner 实现,所有如果有一个实现执行耗时很长或者是死循环,会导致后续的CommandLineRunner 实现延迟执行甚至不执行。...原创 2021-03-01 11:45:06 · 1155 阅读 · 2 评论 -
@RequestMapping(value = ““, produces = “application/json“)
之前在 Spring Boot 从 2.0 升级到 2.2 的时候这个配置出现过,这里转载一个类似文章,记录下这个乱码。----------------------------@RequestMapping(value = “/produces”,produces = “application/json”):表示将生产json格式的数据,此时根据请求头中的Accept进行匹配,如请求头“Accept:application/json”时即可匹配;@RequestMapping(value = .转载 2021-01-21 20:37:22 · 1376 阅读 · 0 评论 -
@ControllerAdvice 全局异常响应页面和 JSON
我这里页面以 Thymeleaf 为例子,相关配置:spring: thymeleaf: cache: false mode: HTML5 encoding: UTF-8 prefix: classpath:/templates/判断是否是 AJAX:public static boolean isAjaxRequest(HttpServletRequest request) { return request.getHeader("x-requested-w原创 2020-12-03 02:17:06 · 419 阅读 · 0 评论 -
HTTP的几种认证方式之BASIC 认证(基本认证)
HTTP/1.1 使用的认证方式有 1)BASIC 认证(基本认证); 2)DIGEST 认证(摘要认证); 3)SSL 客户端认证; 4)FormBase 认证(基于表单认证);1、BASIC 认证(基本认证)的步骤 BASIC 认证(基本认证)是从HTTP/1. 1 就定义的认证方式,是Web服务器与通信客户端之间进行的认证方式。 BASIC 认证的步骤:步骤1:当请求的资源需要 BASIC 认证时,服务器会随状态码401 Authoriz...转载 2020-10-27 15:56:08 · 15558 阅读 · 0 评论 -
Spring Boot 实战之Filter实现简单的Http Basic认证
Spring Boot实战之Filter本文在上一篇文章http://blog.csdn.net/sun_t89/article/details/51912905 的基础上,给每个rest接口上添加过滤器,使用过滤器实现简单的Http Basic认证1、Filter功能filter功能,它使用户可以改变一个 request和修改一个response. Filter 不是一个servlet,它不能产生一个response,它能够在一个request到达servlet之前预处理request,也可以转载 2020-10-27 15:47:26 · 541 阅读 · 0 评论 -
Spring Boot 启动不了也不报错的解决方案
公司用的springboot,随着项目的不断庞大,经常会出现一些稀奇古怪的问题,其实多半是配置文件有问题,但是没有错误提示信息,就很是难受,无从下手,如果这篇文章有帮助到你的话,希望留下个足迹或者点个赞再走嘛,以下列举一些自己遇到的常见的问题处理办法:案例1.项目启动,控制台只打印了SPRING的日志,然后自动停止,如截图所示:这种什么错误信息都没有,也是醉了,其实遇到这种情况,可以把启动方法try catch起来即可在控制台显示错误信息,如图所示:接下来再启动,就会看到错误信息了.转载 2020-10-21 11:44:23 · 2446 阅读 · 0 评论 -
RedisHealthIndicator-Health check failed JedisDataException: Err get hash key error.
Spring Boot 版本:1.5.12.RELEASE项目配置了 Spring 健康检查后启动报错,异常信息如下:[2020-09-03 10:30:05] [module-neptune_release] [WARN] [RMI TCP Connection(2)-127.0.0.1] org.springframework.boot.actuate.health.RedisHealthIndicator-Health check failedorg.sp原创 2020-09-03 10:37:40 · 1898 阅读 · 0 评论 -
IllegalStateException: availableProcessors is already set to [8], rejecting [8]
引发这个异常的场景很多,这里记录的是我这边遇到的,这是因为 ES 和 Spring-actuator 有一些兼容性配置问题。详细异常如下:[2020-08-21 12:49:05] [kbs_dev] [ERROR] [main] org.springframework.boot.SpringApplication-Application run failedorg.springframework.context.ApplicationContextException: Unable to s原创 2020-08-21 12:55:54 · 1234 阅读 · 0 评论 -
spring boot2.x 解决Tomcat 报 The valid characters are
spring boot 的内嵌Tomcat 报 The valid characters are defined in RFC 7230 and RFC 3986 之前的解决办法都是在容器中添加@Bean public Integer setRfc() { // 指定jre系统属性,允许特殊符号, 如{} 做入参,其他符号按需添加。见 tomcat的HttpParser源码。 System.setProperty("tomcat.util.http...转载 2020-07-30 18:54:26 · 438 阅读 · 0 评论 -
Spring Boot 获取启动端口号
public class ConfSerivce implements ApplicationListener<WebServerInitializedEvent>{@Override public void onApplicationEvent(WebServerInitializedEvent event) { try { int port = event.getWebServer().getPort(); .转载 2020-06-21 17:45:41 · 881 阅读 · 0 评论 -
关于(历史)系统多租户设计的后续
相关文章:ThreadLocal 系列之 TransmittableThreadLocal基于 MyBatis 实现多租户数据隔离的实践因为某些原因,临近上线前我们调整了方案,即使用多数据源的方案去对系统进行多租户改造,这也是《基于 MyBatis 实现多租户数据隔离的实践》中与各位伙伴讨论的相对好的方案。这样改造过程平滑,两种方案(数据合并方案和多数据源方案)的风险、操作难度不在一个数量级。虽然多数据源方案相对简单很多,但还是要注意一些问题。这里将一些问题记录一下。(历史)系统多数据源配置原创 2020-05-14 16:38:40 · 409 阅读 · 0 评论 -
理解 Spring Order 注解
我们都知道 @Order 是控制优先级的,越小优先级越高,那么问题来了,是控制什么的优先级呢(虽然不能太“杠”,但是个人认为有时候还是得咬文嚼字)。有博客(相关链接见文末)的说法是“注解 @Order 的作用是定义 Spring 容器加载 Bean 的顺序”,其相关示例如下:定义了三个 Bean:@Component@Order(1)public class Cat { ...原创 2020-05-02 09:20:56 · 1759 阅读 · 1 评论 -
SpringBoot 打印 RequestMapping 信息配置
Spring Boot 2.1 之前的版本Spring Boot 2.1 之前 使用INFO 级别记录的信息很多,所以只需要配置为INFO程序启动的时候就可以打印 RequestMapping 的信息,示例如下:logging: level: root: info打印出来的格式如下:2019-04-02 19:51:45.824 INFO 13218 --- [...转载 2020-04-16 17:48:17 · 1620 阅读 · 0 评论 -
Spring Boot 中 spring.profiles.include
我们有这样的一个springboot项目。项目分为开发、测试、生产三个不同阶段(环境),每个阶段都会有db、ftp、redis等的不同配置信息。我们可以使用spring.profiles.include来实现三种不同环境的一键切换。项目总(入口)配置文件:bootstrap.yml ,内容如下spring.profiles.active: dev #dev、test、prod 三...转载 2020-04-12 23:58:01 · 874 阅读 · 0 评论 -
从 Spring Boot 自动装配看 Maven 可选依赖的使用
Spring Boot 的自动装配使用的是 spring-boot-starter 这种方式,spring-boot-starter 分成很多的模块,比如 web 模块,在没有引入 spring-boot-starter-web 的时候,自动装配的很多类都是报红的:同样地,在 PageHelper 中 CacheFactory 也这么用过:public abstract class Cach...原创 2020-04-11 19:54:12 · 464 阅读 · 0 评论 -
RestTemplate 中文乱码完美解决方案
RestTemplate中对字符串使用的是StringHttpMessageConverter中默认的编码public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> { //省略其他代码 public static final Charset DEFAUL...转载 2020-04-08 00:55:25 · 2817 阅读 · 0 评论 -
排查读写分离失效原因
今天组内一哥们反应说项目中读写分离出现了 BUG:明明加了读库的注解,而且日志也是显示应该要读从库,但是居然还是从主库中读取的数据。于是排查了一下原因,原因就是因为在数据源切换之前使用了声明式事务。首先介绍一下这个项目中读写分离的实现方式:基于注解(AOP) + AbstractRoutingDataSource;这是个很常见的使用方式,但是我个人不太推荐这个方式,因为基于注解可设置范围过大,如...原创 2020-02-28 15:19:13 · 663 阅读 · 0 评论 -
SpringBoot2 对应 Tomcat 的 AJP 漏洞
背景2020年1月6日,国家信息安全漏洞共享平台(CNVD)收录了由北京长亭科技有限公司发现并报送的Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2020-1938)。攻击者利用该漏洞,可在未授权的情况下远程读取特定目录下的任意文件。目前,漏洞细节尚未公开,厂商已发布新版本完成漏洞修复。具体公告:https://www.cnvd.org.cn/webi...转载 2020-02-26 20:04:01 · 3974 阅读 · 3 评论 -
Spring Boot jsp 页面返回源码,没有渲染
转自:https://blog.csdn.net/qq_38366063/article/details/88782457spring-boot-starter-web包括spring-boot-starter-tomcat在spring-boot-starter-tomcat包括tomcat-embed-coretomcat-embed-core不包括在内tomcat-embed-jas...转载 2019-03-24 21:36:23 · 645 阅读 · 0 评论 -
Spring Boot 启动:No active profile set, falling back to default profiles: default
启动 Spring Boot 失败,但是没有出现多余的异常信息:检查之后发现是依赖的问题(之前依赖的是 spring-boot-starter),修改即可:原创 2019-01-23 20:44:20 · 21004 阅读 · 7 评论 -
Spring Boot发送邮件
转自:https://blog.csdn.net/qq_38366063/article/details/83475170对应的部分pom: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte...转载 2018-11-03 15:36:09 · 364 阅读 · 0 评论 -
SpringBoot启动异常:Cannot determine embedded database driver class for database type NONE
异常信息:这个异常是说没有配置数据库连接,在application.properties文件中增加数据库连接即可:原创 2018-06-26 09:42:21 · 355 阅读 · 0 评论 -
Springboot 文件上传超过限制异常处理
一般上传文件大小会这么限制:这样的确是可以限制,但是异常信息并不能被 Spring MVC 的全局异常拦截器所拦截,因为异常是 Tomcat 所抛出的,在进入 Controller 之前就抛出了。这里提供一种解决方案,不通过 Tomcat 进行控制,直接通过 Spring MVC 的拦截器进行控制即可:随后将拦截器注册到 Spring MVC 拦截器中。...原创 2019-05-25 01:18:40 · 5155 阅读 · 1 评论 -
Spring Boot获取 resources 目录下文件
要注意不同的 module 下是不一样的。转自:https://blog.csdn.net/napoay/article/details/81048724转自:https://www.cnblogs.com/kingsonfu/p/10425422.html转载 2019-07-18 23:26:51 · 759 阅读 · 0 评论 -
SpringBoot附件上传超限org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException
1.项目使用的是Spring Boot + Spring Cloud,上传附件报超出自带tomacat限制大小(默认1M)org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size ...转载 2019-07-31 13:06:15 · 665 阅读 · 0 评论 -
Spring Boot上传文件MultiPartFile获取不到文件问题解决
1.现象是在spring-boot里加入commons-fileupload jar并且配置了mutilPart的bean,在upload的POST请求后,发现multipartRequest.getFiles("file")=null,有点奇怪,查了文档资料才解决。 <bean id="multipartResolver" class="org.springframework....转载 2019-08-16 12:59:06 · 6757 阅读 · 0 评论 -
RestTemplate 接口请求总结
一、获取接口返回状态码使用getForEntity调用接口,返回结果调用getStatusCode()方法取得HttpStatus对象,然后就可以调用里面的各种方法来满足你的需求了//判断接口返回是否为200 public static Boolean ping(){ String url = domain + "/it/ping"; try{ ...转载 2019-09-04 14:35:25 · 590 阅读 · 0 评论 -
再谈Spring Boot的启动
之前在这篇博客https://blog.csdn.net/Dongguabai/article/details/80865599中已经分析过了一部分,今天又发现了一个与Spring Boot启动相关的好玩的东东。比如一般Spring Boot启动main()方法如下:可以发现这里new了一个SpringApplication,再往下看:这里为一个很重要的属性main...原创 2018-10-31 14:34:56 · 231 阅读 · 0 评论 -
如何修改Spring Boot默认的JSON解析框架
转自:https://www.jianshu.com/p/fca9cbe2453b问题 很多时候后台会把主键ID的类型设置成Long类型,这样做虽然有很多好处,但是也存在一个问题,如果Long类型的数据过长的话(比如{id:122000083049775104})就会导致前端JavaScript在处理ID的时候丢失精度,它会将id处理成122000083049775100,很明显,原ID...转载 2018-10-10 14:36:28 · 2961 阅读 · 0 评论 -
SpringBoot多模块项目打包方法(jar和war)
简单介绍下项目情况(使用的SpringBoot2.0):成功打包的前提是maven的一些插件啊等等配置要没问题!打包为jar:选中项目:复制项目路径后,win+R+cmd进入命令行(我这里是windows系统):时间会有点长:编译成功,找到可执行jar的位置:启动看看:启动成功!打包为war:打包为war的话,首先要把包的打包方式改为war,默认是jar,现在修改为war:直接这么打包看看:启动成...原创 2018-06-26 12:03:39 · 9200 阅读 · 0 评论 -
SpringBoot配置端口号和context-path
原创 2018-06-10 15:54:03 · 646 阅读 · 0 评论 -
SpringBoot获取配置信息
第一种:使用@Value注解在application.yml文件中:在Controller中注入:如果需要在配置文件中使用以有的配置可以这么来做:测试结果:要说明的是如果配置文件中有数值类型,注入的时候可以使用Integer类型。第二种:使用@ConfigurationProperties在application.yml中(实际开发一般不会写在这里):注册一个类对应:在Controller中的使用...原创 2018-06-10 17:51:27 · 1828 阅读 · 0 评论 -
SpringBoot的几个细节
在启动SpringBoot项目的时候,是在控制台日志中可以看到相关的进程pid的:在第一行:在任务管理器中也可以查看到:原创 2018-06-10 23:54:30 · 760 阅读 · 0 评论 -
SpringBoot修改jackson序列化时间类型
SpringBoot默认使用的是jackson,下面先简单示例下:Controller类的一个方法:PostMan访问返回结果:这个时间显然不是我们所需要的,参考官方文档,我们可以设置这两个属性进行修改,一个是格式,一个是时区:在配置文件中设置:重新访问,修改成功:...原创 2018-06-14 00:00:09 · 5715 阅读 · 1 评论