在Springboot程序启动后,会默认添加OrderedCharacterEncodingFilter和HiddenHttpMethodFilter过滤器.在HiddenHttpMethodFilter过滤器中会调用request.getParameter(),从而造成我们在controller中通过request的InputStream无法读取到RequestBody的数据.如下: 如果我们读取RequestBody的字节数据该怎么办呢?这里介绍2种处理方式,推荐第一种方式: 一.使用@Re…
在Springboot程序启动后,会默认添加OrderedCharacterEncodingFilter和HiddenHttpMethodFilter过滤器.在HiddenHttpMethodFilter过滤器中会调用request.getParameter(),从而造成我们在controller中通过request的InputStream无法读取到RequestBody的数据.如下: 如果我们读取RequestBody的字节数据该怎么办呢?这里介绍2种处理方式,推荐第一种方式: 一.使用@Re…
先吐槽一下UEditor作为一个前端的js类库,非要把4种后端的代码给出来,而实际生产中用的框架不同,其代码并不具有适应性.(通常类似其它项目仅仅是给出数据交互的规范.格式,后端实现就可以自由定制) 接下来还是说各种问题把 1.首先下载其jsp的版本... 然而我并没有用jsp <%@ page language="java" contentType="text/html; charset=UTF-8" import="com.baidu.uedit…
最近遇到Controller中需要多个@RequestBody的情况,但是发现并不支持这种写法, 这样导致 1.单个字符串等包装类型都要写一个对象才可以用@RequestBody接收: 2.多个对象需要封装到一个对象里才可以用@RequestBody接收. 查阅StackOverFlow,受到一个解决方案的启发,本人改进为以下版本,并给出了详尽的注释,希望对大家有帮助. 改进后的方案支持: 1.支持通过注解的value指定JSON的key来解析对象. 2.支持通过注解无value,直接根据参数名…
<bean id="yamlProperties" class="org.springframework.beans.factory.config.YamlPropertiesFactoryBean">   <property name="resources" value="classpath:config/application-release.yml"/>   </bean>      …
今天配置一个项目jdbc.properties这个文件里面的键值总是读取不到,刚开始以为是文件没有读取到,但是测试是读取到的,再排查键值是不是写错了, 后来发现键值是对的,这就很奇怪了 比较是没有任何问题的,后来排查了很久发现 就是这个注释,我加了注释之后就可以读取到,,然后再去掉这个注释也没问题了…
先说结论,在Controller中注入Request是线程安全的. 以下是解释: 我们先来看看这两者有什么不同 在controller注入成员变量request 可以看到注入的是一个代理对象 写在方法参数上 可以看到是一个tomcat原生的RequestFacade对象 那接下来我们看看在controller注入成员变量request是怎么实现的? 可以看到,我们找到 org.springframework.beans.factory.support.AutowireUtils.ObjectFa…
SpringBoot集成mybatis,同时读取一个数据库中多个数据表: application.properties: mybatis.config-location=classpath:mybatis/mybatis-config.xmlmybatis.mapper-locations=classpath:mybatis/mapper/PointMapper.xml,mybatis/mapper/LineMapper.xmlmybatis.type-aliases-package=com.e…
在SpringBoot项目中添加logback的MDC     先看下MDC是什么 Mapped Diagnostic Context,用于打LOG时跟踪一个“会话“.一个”事务“.举例,有一个web controller,在同一时间可能收到来自多个客户端的请求,如果一个请求发生了错误,我们要跟踪这个请求从controller开始一步步都执行到了哪些代码.有哪些log的输出.这时我们可以看log文件,但是log文件是多个请求同时记录的,基本无法分辨哪行是哪个请求产生的,虽然我们可以看线程,但线程…
SpringMVC的拦截器HandlerInterceptorAdapter对应提供了三个preHandle,postHandle,afterCompletion方法. preHandle在业务处理器处理请求之前被调用: postHandle在业务处理器处理请求执行完成后,生成视图之前执行: afterCompletion在DispatcherServlet完全处理完请求后被调用,可用于清理资源等: 所以要想实现自己的权限管理逻辑,需要继承HandlerInterceptorAdapter并重写…