日志注解 前言 spring切面的编程,spring中事物处理.日志记录常常与pointcut相结合 * * Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的. Pointcut可以有下列方式来定义或者通过&& || 和!的方式进行组合. * * Spring AOP支持的AspectJ切入点指示符如下: execution:用于匹配方法执行的连接点: within:用于匹配指定类型内的方法执…
前言 [第一次尝试去写一个系列,肯定会有想不到的地方,欢迎大家留言指正] 本系列将介绍如果从零构建一套分布式系统.同时也是对自己过去工作的一个梳理过程. 本文先整理出构建系统的主要技术选型,以及技术框架.其实在形成如下框架前,我参考了许多资料和结构,也结合中小型公司的时间以及人力等因素综合. 选型 分布式调用框架 可选的有  dubbox, SpringCloud dubboX:当当基于dubbo搞的,还在维护可以一用,推荐. SpringCloud:整合了大量组件,相关文档比较复杂,需要针对性…
前言 调试之前请先关闭Favicon配置 spring:     favicon:       enabled: false 不然会发现有2个请求(如果用nginx+ 浏览器调试的话) 序列化工具类[fastjson版本1.2.37] ```public class FastJson2JsonRedisSerializer implements RedisSerializer {     public static final Charset DEFAULT_CHARSET = Charset.…
前言 技术选型已经做完,那就来搭建框架了. 首先基于mvc思想,设计这套框架也是基于此,也会设计Dao层.Service层.Controller层.视图层等,同时也要考虑到dubbo的调用原理.   设计框架横向分层   调用关系图 web:为服务消费者,提供web页面,依赖middle.facade层,调用service层 api:同为服务消费者,只提供api接口,依赖middle.facade层,调用service层 middle:其实只是提取web.api层公共部分代码,依赖facade…
随着前后端分离架构和微服务架构的流行,我们使用Spring Boot来构建RESTful API项目的场景越来越多.通常我们的一个RESTful API就有可能要服务于多个不同的开发人员或开发团队:IOS开发.Android开发.Web开发甚至其他的后端服务等.为了减少与其他团队平时开发期间的频繁沟通成本,传统做法就是创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题: 由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型.HTTP头部信息.HTTP请求内容…
博客地址:http://www.moonxy.com 一.前言 随着 Spring 的功能越来越强,在使用 Spring 的时候,门槛也变得高了起来,诸如搭建一个基于 Spring 的 Web 程序却并不简单,需要进行各种配置,Spring 通过多年的发展,本身变得很臃肿,过时的使用方式,如 XML 系统配置方式,没有被淘汰的同时,出现了新的注解配置方式,这给初学者带来了使用上的混乱.同时 Spring 也集成了越来越多的第三方技术,如何方便地使用这些技术,各版本之间是否会产生冲突,也需要一定的…
请求参数的校验是很多新手开发非常容易犯错,或存在较多改进点的常见场景.比较常见的问题主要表现在以下几个方面: 仅依靠前端框架解决参数校验,缺失服务端的校验.这种情况常见于需要同时开发前后端的时候,虽然程序的正常使用不会有问题,但是开发者忽略了非正常操作.比如绕过前端程序,直接模拟客户端请求,这时候就会突然在前端预设的各种限制,直击各种数据访问接口,使得我们的系统存在安全隐患. 大量地使用if/else语句嵌套实现,校验逻辑晦涩难通,不利于长期维护. 所以,针对上面的问题,建议服务端开发在实现接口…
之前通过Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档一文,我们学习了如何使用Swagger为Spring Boot项目自动生成API文档,有不少用户留言问了关于文档内容的组织以及排序问题.所以,就特别开一篇详细说说Swagger中文档内容如何来组织以及其中各个元素如何控制前后顺序的具体配置方法. 接口的分组 我们在Spring Boot中定义各个接口是以Controller作为第一级维度来进行组织的,Controller与具体接口之间的关系是一对多的关系.我们…
本文原创首发于公众号:Java技术干货 1.概述 本文将Nacos作为配置中心,实现配置外部化,动态更新.这样做的优点:不需要重启应用,便可以动态更新应用里的配置信息.在如今流行的微服务应用下,将应用的配置统一管理,显得尤为重要. 上一篇写了<Spring Boot 2.x 基础案例:整合Dubbo 2.7.3+Nacos1.1.3(最新版)>https://www.jianshu.com/p/b0dddce1d404,在文章中,nacos的角色是注册中心. 本文也是在上一篇的基础上,继续学习…
前言 通过之前的两篇关于Swagger入门以及具体使用细节的介绍之后,我们已经能够轻松地为Spring MVC的Web项目自动构建出API文档了.如果您还不熟悉这块,可以先阅读: Spring Boot 2.x基础教程:使用Swagger2构建强大的API文档 Spring Boot 2.x基础教程:Swagger接口分类与各元素排序问题详解 在这两篇文章中,我们构建的文档必须通过在项目中整合swagger-ui.或使用单独部署的swagger-ui和/v2/api-docs返回的配置信息才能展…