![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
jsq6681993
这个作者很懒,什么都没留下…
展开
-
spring 过滤器和拦截器实现修改请求体中的参数数据
spring通过过滤器和拦截器实现修改请求体中的参数数据:https://www.jb51.net/article/216183.htm原创 2021-08-15 20:30:01 · 1539 阅读 · 0 评论 -
RequestBodyAdvice用法详解-参数加解密示例
在实际项目中,我们常常需要在请求前后进行一些操作,比如:参数解密/返回结果加密,打印请求参数和返回结果的日志等。这些与业务无关的东西,我们不希望写在controller方法中,造成代码重复可读性变差。这里,我们讲讲使用@ControllerAdvice和RequestBodyAdvice、ResponseBodyAdvice来对请求前后进行处理(本质上就是AOP),来实现日志记录每一个请求的参数和返回结果。实现步骤1、声明一个类型,加上@ControllerAdvice注解,类实现接口RequestBo原创 2021-08-15 20:07:32 · 14533 阅读 · 0 评论 -
解决在同一个bean类里两个方法互相调用,事务失效的问题。
解决在同一个bean类里两个方法互相调用,事务失效的问题。下面是解决方案:1.把方法B抽离到另外一个XXService中去,并且在这个Service中注入XXService,使用XXService调用方法B;显然,这种方式一点也不优雅,且要产生很多冗余文件,看起来很烦,实际开发中也几乎没人这么做吧?.反正我不建议采用此方案;2.通过在方法内部获得当前类代理对象的方式,通过代理对象调用方法B上面说了:动态代理最终都是要调用原始对象的,而原始对象在去调用方法时,是不会再触发代理了!所以我们就使用原创 2021-04-29 20:30:29 · 2272 阅读 · 0 评论 -
spring 获取http参数
http请求中(get,post都适用)Content-Type:application/json , application/xml , multipart/form-data 等。使用@RequestBody 获取,原生的方式:request.getInputStream(),Content-Type: application/x-www-form-urlencoded@RequestParam 读取到的是http请求url拼接的参数或请求消息体中使用&拼接的参数。原生的获取方.原创 2021-01-11 18:36:18 · 206 阅读 · 0 评论 -
Spring自动注入之Autowired与Resource
Spring中 @Autowired注解与@Resource注解的异同点。相同点:@Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上。不同点:1、提供方:@Autowired是由org.springframework.beans.factory.annotation.Autowired提供,换句话说就是由Spring提供;@Resource是由javax.annotation.Resource提供,即J2EE提供,需要JDK1.6及以上。2、 注原创 2020-11-17 20:33:40 · 350 阅读 · 0 评论 -
spring配置拦截器
spring配置拦截器实现WebMvcConfigurer 接口,重写 addInterceptors(InterceptorRegistry interceptorRegistry)方法,通过调用interceptorRegistry.addInterceptor(new HandlerInterceptorAdapter() ) 添加拦截器对象,通过addPathPatterns("/**")匹配拦截的路径。若不设置addPathPatterns,则当前拦截器匹配所有路径。@Configur.原创 2020-11-17 10:57:34 · 440 阅读 · 0 评论 -
Spring 编程式事务管理及源码浅析
Spring 对 事务管理 有编程式和声明式声明式事务管理用到了aop与代理. 通过代理方式来管理事务.编程式事务管理用到了模板设计模式和回调函数来管理事务. (而模板加回调是线程安全的) @Resource private TransactionTemplate transactionTemplate; public void testTransactionTemplate (){ //编程式事务,带有返回值 transactionTemplate.execute(ne原创 2020-10-22 22:20:21 · 207 阅读 · 0 评论 -
spring三级缓存解决循环依赖
spring 只能解决属性注入循环依赖,不能解决构造器注入循环依赖。解决核心是/** Cache of singleton objects: bean name --> bean instance */private final Map<String, Object> singletonObjects = new ConcurrentHashMap<String, Object>(256); /** Cache of singleton factories: bean原创 2020-10-21 19:28:59 · 128 阅读 · 0 评论 -
StringRedisTemplate与RedisTemplate遇坑
先说一下StringRedisTemplate与RedisTemplate区别1、 关系不同StringRedisTemplate继承RedisTemplate,指定了RedisTemplate<String,String> 泛型。这里延申另外一个问题,在spring中自动注入时当使用@AutoWired注解注入RedisTemplate 时要注意一下/** * 此写法,注入的实际上是StringRedisTemplate 的实例对象。 * 原因是根据类型匹配继承了指定泛型&原创 2020-10-20 22:53:57 · 738 阅读 · 0 评论 -
springMVC启动过程
下面是一个SpringMVC应用的配置文件,需要注意两个地方,一个是ContextLoaderListener,一个是dispatcherServlet。web容器正是通过这两个配置才和spring管理起来。ContextLoaderListener与web容器的ServletContext关联,为Spring的IOC容器提供了一个宿主环境。在建立起IOC容器体系之后,把DispatcherServlet作为SpringMVC处理web请求的转发器建立起来,完成响应http请求的准备。SpringMVC启原创 2020-10-17 15:33:32 · 1403 阅读 · 1 评论