随笔分类 -  springmvc

摘要:@Validated和@Valid对比 Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR-303规范),配合BindingResult可以直接提供参数 阅读全文
posted @ 2020-03-26 09:05 hjzqyx 阅读(3032) 评论(1) 推荐(1) 编辑
摘要:前两篇(Spring MVC源码——Root WebApplicationContext 和 Spring MVC源码——Servlet WebApplicationContext)讲述了springmvc项目创建上下文的过程,这一篇带大家了解一下springboot项目创建上下文的过程。 Spri 阅读全文
posted @ 2019-05-13 09:13 hjzqyx 阅读(3108) 评论(0) 推荐(1) 编辑
摘要:上一篇笔记(Spring MVC源码——Root WebApplicationContext)中记录了下 Root WebApplicationContext 的初始化代码.这一篇来看 Servlet WebApplicationContext 的初始化代码 DispatcherServlet 是另 阅读全文
posted @ 2019-05-07 13:16 hjzqyx 阅读(1205) 评论(3) 推荐(2) 编辑
摘要:Spring MVC源码——Root WebApplicationContext 打算开始读一些框架的源码,先拿 Spring MVC 练练手,欢迎点击这里访问我的源码注释, SpringMVC官方文档一开始就给出了这样的两段示例: WebApplicationInitializer示例: web. 阅读全文
posted @ 2019-05-06 15:22 hjzqyx 阅读(2678) 评论(2) 推荐(1) 编辑
摘要:一、前言 本文章所讲并没有基于Aspectj,而是直接通过Cglib以及ProxyFactoryBean去创建代理Bean。通过下面的例子,可以看出Cglib方式创建的代理Bean和ProxyFactoryBean创建的代理Bean的区别。 二、基本测试代码 测试实体类,在BPP中创建BppTest 阅读全文
posted @ 2019-03-03 00:50 hjzqyx 阅读(4682) 评论(7) 推荐(2) 编辑
摘要:一、前言 最近负责支付宝小程序后端项目设计,这里主要分享一下用户会话、接口鉴权的设计。参考过微信小程序后端的设计,会话需要依靠redis。相关的开发人员和我说依靠Redis并不是很靠谱,redis在业务高峰期不稳定,容易出现问题,总会出现用户会话丢失、超时的问题。之前听过JWT相关的设计,决定尝试一 阅读全文
posted @ 2019-01-20 00:25 hjzqyx 阅读(6532) 评论(4) 推荐(2) 编辑
摘要:一、前言 最近带着两个兄弟做支付宝小程序后端相关的开发,小程序首页涉及到很多查询的服务。小程序后端服务在我司属于互联网域,相关的查询服务已经在核心域存在了,查询这块所要做的工作就是做接口中转。参考了微信小程序的代码,发现他们要么新写一个接口调用,要么新写一个接口包裹多个接口调用。这种方式不容易扩展。 阅读全文
posted @ 2019-01-10 18:42 hjzqyx 阅读(2538) 评论(2) 推荐(0) 编辑
摘要:一、前言 由于之前写过的一片文章 (java接口签名(Signature)实现方案 )收获了很多好评,此次来说一下另一种简单粗暴的签名方案。相对于之前的签名方案,对body、paramenter、path variable的获取都做了简化的处理。也就是说这种方式针所有数据进行了签名,并不能指定某些数 阅读全文
posted @ 2018-12-26 13:51 hjzqyx 阅读(22460) 评论(26) 推荐(0) 编辑
摘要:一、接口开关功能 1、可配置化,依赖配置中心 2、接口访问权限可控 3、springmvc不会扫描到,即不会直接的将接口暴露出去 二、接口开关使用场景 和业务没什么关系,主要方便查询系统中的一些状态信息。比如系统的配置信息,中间件的状态信息。这就需要写一些特定的接口,不能对外直接暴露出去(即不能被s 阅读全文
posted @ 2018-11-04 01:08 hjzqyx 阅读(3593) 评论(0) 推荐(0) 编辑
摘要:一、前言 spring为开发人员提供了两个搜索注解的工具类,分别是AnnotatedElementUtils和AnnotationUtils。在使用的时候,总是傻傻分不清,什么情况下使用哪一个。于是我做了如下的整理和总结。 二、AnnotationUtils官方解释 功能 用于处理注解,处理元注解, 阅读全文
posted @ 2018-10-15 15:54 hjzqyx 阅读(14060) 评论(0) 推荐(5) 编辑
摘要:一、前言 javax.servlet.http.HttpServletRequestWrapper 是一个开发者可以继承的类,我们可以重写相应的方法来实现session的自定义以及缓存InputStream,在程序中可以多次获取request body的内容。 二、自定义seesion 也许大家都用 阅读全文
posted @ 2018-10-10 15:52 hjzqyx 阅读(8686) 评论(0) 推荐(1) 编辑
摘要:预祝大家国庆节快乐,赶快迎接美丽而快乐的假期吧!!! 前言 在为第三方系统提供接口的时候,肯定要考虑接口数据的安全问题,比如数据是否被篡改,数据是否已经过时,数据是否可以重复提交等问题。其中我认为最终要的还是数据是否被篡改。在此分享一下我的关于接口签名的实践方案。如果这种方案不是很好理解,请参考另一 阅读全文
posted @ 2018-09-30 12:04 hjzqyx 阅读(71484) 评论(72) 推荐(11) 编辑
摘要:一、Bean的自注册过程 二、自注册过程说明 ConfigurationClassParser解析流程 1、处理@PropertySources注解,配置信息的解析 2、处理@ComponentScan注解:使用ComponentScanAnnotationParser扫描basePackage下的 阅读全文
posted @ 2018-09-27 09:47 hjzqyx 阅读(4086) 评论(0) 推荐(1) 编辑
摘要:一、前言 springboot配置静态资源方式是多种多样,接下来我会介绍其中几种方式,并解析一下其中的原理。 二、使用properties属性进行配置 应该说 spring.mvc.static-path-pattern 和 spring.resources.static-locations这两属性 阅读全文
posted @ 2018-09-21 14:05 hjzqyx 阅读(26112) 评论(1) 推荐(5) 编辑
摘要:springmvc RequestMappingHandlerAdapter#invokeHandlerMethod 通过ServletInvocableHandlerMethod#invokeAndHandle调用目标方法,并处理返回值。 如果return value != null,则通过ret 阅读全文
posted @ 2018-08-02 09:24 hjzqyx 阅读(11591) 评论(1) 推荐(1) 编辑
摘要:前言 配置中心,通过key=value的形式存储环境变量。配置中心的属性做了修改,项目中可以通过配置中心的依赖(sdk)立即感知到。需要做的就是如何在属性发生变化时,改变带有@ConfigurationProperties的bean的相关属性。 配置中心 在读配置中心源码的时候发现,里面维护了一个E 阅读全文
posted @ 2018-07-06 11:59 hjzqyx 阅读(15498) 评论(0) 推荐(5) 编辑
摘要:1.接口 Class<?> resourceClass 2.获取builder 3.获取接口对应的动态代理class 4.targetProxyClass构造参数类型 InvocationHandler,通过builder设置 builder.addConstructorArgValue(Proxy 阅读全文
posted @ 2018-03-08 11:22 hjzqyx 阅读(4923) 评论(0) 推荐(1) 编辑
摘要:详细错误信息 解决思路 需要指定 @RequestParam 的name属性值 源码分析 AbstractNamedValueMethodArgumentResolver.java 阅读全文
posted @ 2018-03-01 15:47 hjzqyx 阅读(16599) 评论(0) 推荐(0) 编辑
摘要:准备内容 简单的shiro无状态认证 无状态认证拦截器 import com.hjzgg.stateless.shiroSimpleWeb.Constants; import com.hjzgg.stateless.shiroSimpleWeb.realm.StatelessToken; impor 阅读全文
posted @ 2017-07-24 15:49 hjzqyx 阅读(19211) 评论(1) 推荐(3) 编辑
摘要:一、swagger2依赖 二、springmvc配置文件加入 三、web.xml配置 四、swagger2配置 可创建多个Docket,对restful api进行分组管理 五、效果演示 六、注意事项 1、如果有拦截器或者过滤器 对项目根路径进行拦截,可能<welcome-file>的配置不生效! 阅读全文
posted @ 2017-07-20 11:09 hjzqyx 阅读(2454) 评论(0) 推荐(0) 编辑