原因是因为单元测试时没有加载 web.xml 中的: <!-- spring在service层获取session和request需要创建的监听器 --> <listener> <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class> </listener> 所以单元测试时如果需要用到 request 中的值的话,就…
1 . RequestContextHolder 的使用 想要使用RequestContextHolder,要在web.xml中配置RequestContextListener的监听才能使用. //全局获取session的方法: HttpSession session = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getSession(); 同时 这样可以获取requ…
我们有的时候会在service层获取request填充一些诸如用户名和IP地址等信息,这个时候如果不想从Controller层传request,可以在service直接使用 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); 但是,如果service层的函数是异步的话,是获取不到request的. 通常RequestC…
现象:实现Feign请求拦截器时,执行如下代码,报空指针异常 ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); HttpServletRequest request = attributes.getRequest(); 解决方式:在启动类中加入以下代码 /** * 监听器:监听HTTP请求事件 * 解决RequestContex…
1.基于AbstractDependencyInjectionSpringContextTests Spring的单元测试可以使用AbstractDependencyInjectionSpringContextTests做测试,不支持事务.AbstractTransactionalDataSourceSpringContextTests是支持事务的. Spring单元测试需要注意的地方: (1)需要注入的类内成员如果不是public类型,需要定义setter方法才能正常注入(针对在Spring配…
好久没写这个系列博客了是因为本人去公司实习去了,公司用的是Spring+SpingMvc+Hibernate现在有时间了不管怎么样继续把这个项目写完. 因为机器的原因,我的环境变成了IDEA+oracle+1.8+tomcat8.5,不过不影响,只是数据库的配置不同和导入的是oracle的jar包罢了. 那就继续吧,我们已经写了一个分页的后台控制器,和前面一样我们使用Spring单元测试有没有问题,能不能取出数据. 在测试之前我们要知道,我们需要给后台的分页控制器发送一个请求,它才能处理这个请求…
原文链接:https://jingyan.baidu.com/article/93f9803f5a97a4e0e46f55c8.html SSM搭建Spring单元测试环境…
转自:https://blog.csdn.net/shinchan_/article/details/37818927 com/opensymphony/xwork2/spring/SpringObjectFactory.java:220:-1问题出现的原因及解决办法严重: Exception starting filter struts2Class: com.opensymphony.xwork2.spring.SpringObjectFactoryFile: SpringObjectFact…
1.JUnit4 JUnit测试用例的完整生命周期要经历一下阶段:类级初始化资源处理,方法级初始化资源处理.执行测试用例中的方法.方法级销毁资源处理.类级销毁资源处理. 测试方法 @Test 初始化 @BeforeClass.@AfterClass和@Before.@After 异常测试 @Test(expected=NullPointerException.class) 超时测试 @Test(timeout=10) assertThat 断言 2.模拟利器Mockito 创建Mock对象 //…
异步转同步 业务需求 有些接口查询反馈结果是异步返回的,无法立刻获取查询结果. 正常处理逻辑 触发异步操作,然后传递一个唯一标识. 等到异步结果返回,根据传入的唯一标识,匹配此次结果. 如何转换为同步 正常的应用场景很多,但是有时候不想做数据存储,只是想简单获取调用结果. 即想达到同步操作的结果,怎么办呢? 思路 发起异步操作 在异步结果返回之前,一直等待(可以设置超时) 结果返回之后,异步操作结果统一返回 循环等待 LoopQuery.java 使用 query(),将异步的操作 remote…