日志是一个Web项目中必不可少的部分,借助它我们可以做许多事情,比如问题排查、访问统计、监控告警等。一般通过引入slf4j的一些实现框架来做日志功能,如log4j,logback,log4j2,其性能也是依次增强。在springboot中,默认使用的框架是logback。我们经常需要在方法开头或结尾加日志记录传入参数或返回结果,以此来复现当时的请求情况。但是手动添加日志,不仅繁琐重复,也影响代码的
# 如何在 Spring Boot 中实现 MySQL 查询超时 在开发应用程序时,我们常常需要与数据库进行交互。在某些情况下,我们可能会遇到长时间等待查询返回的情况,为了提升用户体验以及系统的效率,设置查询超时是一个必要的步骤。本文将逐步教你如何在 Spring Boot 应用中实现 MySQL 的查询超时。 ## 过程概要 为了实现 MySQL 查询超时,我们需要进行一系列的步骤。以下是
原创 1月前
24阅读
SpringCloud之Feign 负载均衡请求超时时间 ribbon: ConnectTimeout: 5000 #请求连接的超时时间,默认时间为1秒 ReadTimeout: 5000 #请求处理的超时时间 5秒没有响应成功就报如下错误(真实情况下,会比5s多一些,因为发送请求也需要时间的,模拟超时可以在请求处理的方法上用Thread.sleep()
转载 3月前
261阅读
在上一章第三十六章:基于SpringBoot架构重写SpringMVC请求参数装载中我们说到了怎么去重写SpringMVC参数装载,从而来完成我们的需求。本章内容会在上一章的基础上进行修改!企业中接口编写是再频繁不过的事情了,现在接口已经不仅仅用于移动端来做数据服务了,一些管理平台也同样采用了这种方式来完成前后完全分离的模式。不管是接口也好、分离模式也好都会涉及到数据安全的问题,那我们怎么可以很好
转载 2月前
37阅读
场景公司有一个业务需要控制db0和db1的两个数据源的表的事务,每次都要自己多个开启,比较麻烦,因为公司是自定义框架所以模拟springjdbc的DataSourceTransactionManager多数据源控制 和@Transactional注解模拟写了一个多数据源管理事务的注解@LdTransactional解决方案查看DataSourceTransactionManager源码得知,实际是
  在前后端分离的开发模式中,后端对前端传入的参数的校验成了必不可少的一个环节。但是在多参数的情况下,在controller层加上参数验证,会显得特别臃肿,并且会有许多的重复代码。这里可以引用Hibernate Validator来解决这个问题,直接在实体类进行参数校验,验证失败直接返回错误信息给前端,减少controller层的代码量。一、pom引入Hibernate Validator<
1.使用swagger2的好处在日常开发中,避免不了的就是为接口编写文档。这需要占用我们一定的开发时间。同时还需要维护接口文档,当接口字段有变化,我们需要立即更新文档,而且还需要告知前端。进行修改。现在我们可以使用swagger2来帮助我们在线生成接口文档,接口文档自动更新等等,接口测试等等。swagger2使用很简单,其只会对现在的代码结构有微小的变化。这也是合理的!2.继承swagger21.
转载 5月前
96阅读
目录NullPointerException 空指针异常@SpringBootConfiguration... 单元测试类位置错误不在启动类所在包或子包UnsatisfiedDependencyException 依赖注入异常Caused by...ClassNotFoundException...A query was run and no Result Maps...查询操作没有进行结果映射B
根据自己的业务情况总结了一下有以下几种情况:一、spring boot的启动类不能直接放在main(src.java.main)这个包下面,把它放在有包的里面就可以了。(springboot的启动的Application必须放在controller类的外面,要不然扫描不到) 如果你的启动类Application位置没错的话直接进入第二步。二、检查Controller类里面的注解package co
如今SpringBoot框架为我们提供了一个极为方便的搭建微服务项目的方案,但是,在使用SpringBoot进行微服务开发时,我们并不能一上来就写代码(当然,如果一上来就写也没什么问题),我们还应该提前指定一些开发规范,否则代码写到后面会越写越烂,毫无规范可言。我通过平时的开发,总结了一套关于统一接口返回类型以及统一异常处理的规范,仅供参考。接口返回值类型规范如今的后台开发,接口规范基本遵循Res
@SpringBootApplication@SpringBootApplication 是启动类上的注解,它组合了3个其他的注解。@SpringBootConfiguration:将该类声明为配置类,这个注解实际上是@Configuration注解的特殊形式。@EnableAutoConfiguration:启用Spring Boot的自动配置,这个注解会告诉SpringBoot自动配置它认为我
springboot整合Swagger2,实现对接口的版本管理1. 需求测试同学有需求,对于接口,之前的版本是1.0,现在是1.1版本,我想要知道1.1新增了什么接口,或者说修改了什么接口,怎么办?2. 细化需求我们用分组来实现,分组在代码里就是 Docket,如图我们希望有一个默认的分组,所有的接口都放在这里,并且是排在最前面的被标记的接口能归类到 v2.7.3里一个接口可以同时被归类到多个地方
转载 2月前
104阅读
简介说明Spring从3.1开始通过以下方法支持缓存:定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术; CacheManager是Spring提供的各种缓存技术抽象接口,内部使用Cache接口进行缓存的增删改查操作,我们一般不会直接和Cache打交道。支持使用JCach
转载 5月前
155阅读
上回咱们说完了helloworld,并且运行后成功在页面上显示出来了,那我们今天就来分析一下这段梦开始的代码(我再复制过来一下)。@Controllerpublic class HelloController { @ResponseBody//写给浏览器 @RequestMapping("/hello")//接收来自浏览器的hello请求 public String hello(
背景定位过程分析代码分析调用流程Arthas分析问题Tomcat embed Bug分析&解决为什么每次请求会加载Jar包内的静态资源为什么连续请求不会出现问题为什么本地不会复现如何解决升级spring boot版本背景公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用。最近在优化接口的响应时间,优化了代码之后,但是时间还是
同步调用同步调用是一种阻塞式的调用方式,即 Consumer 端代码一直阻塞等待,直到 Provider 端返回为止;dubbo默认的协议是netty, Netty 是NIO 异步通讯机制,那么服务调用是怎么转化为同步的呢?下面看源码:省略一部分调用链,最终会来到这里 DubboInvokerprotected Result doInvoke(final Invocation invoc
转载 2月前
160阅读
在开发过程中,应用程序通常会和其他的应用进行交互,应用系统之间的交互往往离不开网络通信。然而,网络环境是不稳定的,网络超时是我们需要考虑的问题。交互模式同步同步调用同步调用接口返回两种状态,这两种状态都是终态,成功S或者失败F。同步调用会阻塞等待返回结果,如果长时间没有结果返回则会等待超时。异步异步调用异步调用会返回两次结果,一次是同步返回一次异步返回。同步返回告知调用方请求已经受理,异步返回告诉
概述 基于 socket.io 来说,采用 node 实现更加合适,本文使用两个后端的Java开源框架实现。服务端使用 netty-socketio 客户端使用 socket.io-client-java 业务需求是将之前通过轮询方式调动RESTFul API改成使用WebSocket长连接方式,实现要服务器实时的推送消息,另外还要实时监控POS机的在线状态等。引入依赖 com.corundu
文章目录1.引入依赖2.配置3.编写websocket服务端4. Vue中简单封装Websocket5.测试1.建立连接:2.发送消息3.关闭连接6.gateway中对ws的转发配置: 1.引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactI
SpringBoot获取http请求参数的方法有七种Java后台获取前端传来参数的方法,稍微罗列一下。1. 直接把表单里面的参数写进 Controller 相应方法的形参中去,这个获取参数的方法适合get提交,而不适合post提交。/** * 1.直接把表单的参数写在Controller相应的方法的形参中 * @param username * @param password * @return
  • 1
  • 2
  • 3
  • 4
  • 5