2020
10-10
10-10
Spring事务失效场景原理及解决方案
1.事务失效-自身调用(通过REQUIRES、REQUIRES_NEW传播属性):自身调用即调该类自己的方法。同类OrderServiceImpl中doSomeThing()方法不存在事务,该方法去调用本类中的存在事务注解的insertAndUpdateOrderInfo()方法。但是insertAndUpdateOrderInfo()其实是无法保证预想的事务性。示列验证:OrderServiceImpl.insertAndUpdateOrderInfo方法中upateData(updateParam)发生异常时,insertData(insertParam)未发生回滚说明:自...
继续阅读 >
工程做好之后,需要对接口进行压力测试。可以自己编写线程池模拟多用户访问测试,也可以使用jmeter进行压测。jmeter的好处是测试方便,并且有完善的结果分析功能。本次采用jmeter进行压力测试。1.准备数据,为了测试准备200w条以上的数据。一个简单的方法是使用下面的sql快速创建。INSERTINTOtable(user_name,address)SELECTuser_name,addressFROMtable;但这样创建的数据不同记录的重复部分太多,和实际业务不太相符。一般...
一、UserDetailServiceSpringSecurity支持多种不同的数据源,这些不同的数据源最终都将被封装成UserDetailsService的实例,在微人事(https://github.com/lenve/vhr)项目中,我们是自己来创建一个类实现UserDetailsService接口,除了自己封装,我们也可以使用系统默认提供的UserDetailsService实例,例如上篇文章和大家介绍的InMemoryUserDetailsManager。我们来看下UserDetailsService都有哪些实现类:可以看到,在...
一、需求在使用springgateway作为网关时,我们需要在经过网关的请求中添加一些需要传递给后续服务的公共参数,这个时候就可以用到springgateway提供的自定义请求参数功能了。二、寻找解决途径 1、参考官方文档我们可以猜测,springgateway作为网关功能,肯定会提供很多处理请求参数的功能,于是我们查询文档得到如下内容: 2、探索GatewayFilterFactory实现规律通过查询spring官方文档可以看到,springgateway为...
第一步引入接口:ServletContextListener@RestController@RequestMapping("/schedule")publicclassScheduleControllerimplementsServletContextListener{@AutowiredprivateScheduleServicescheduleService;@OverridepublicvoidcontextDestroyed(ServletContextEventevent){System.out.println("销毁");}@OverridepublicvoidcontextInitialized(ServletContextEventevent){WebApplicationCon...
一般我们会在InterceptorAdapter拦截器中对请求进行验证正常普通接口请求,request.getParameter()可以获取,能多次读取如果我们的接口是用@RequestBody来接受数据,那么我们在拦截器中需要读取request的输入流,因为ServletRequest中getReader()和getInputStream()只能调用一次这样就会导致controller无法拿到数据。解决方法:1、自定义一个类BodyReaderHttpServletRequestWrapper.javaimportjava.io.BufferedReader;import...
1.首先看下我的项目结构我们逐个讲解/***用户登录配置类*@authorAdministrator**/publicclassAdminUserDateilsimplementsUserDetails{privatestaticfinallongserialVersionUID=-1546619839676530441L;privatetransientYCAdminyCAdmin;publicAdminUserDateils(){}publicAdminUserDateils(YCAdminyCAdmin){if(yCAdmin!=null){this.yCAdmin=yCAdmin;}}publicYCAdmingetyC...
以前一家公司,项目用到webservice,不过后来没待多久,当时也要弄别的也就没有研究,这次也遇到过这样一个使用场景,需要对接别人的一个人脸识别服务,在什么都没有的情况下,对方只给了一个wsdl的地址过来,全程都靠自己去研究了.先就webservice讲下自己的理解把,感觉有点像websockt,它可以实现一个服务端,然后在客户端去调用服务端去完成服务端的操作.这里使用spring-boot1.先创建spring-boot项目,引入jar包2.创建一个对象.<!--web...
Actuator是监控管理,不过没有可视化,这里就引入了admin-ui来解决SpringBootAdmin分为Client端和Server端Client端是客户端Server端是spring-boot-admin来监控client的.先来一个Client客户端代码;<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://m...