5 陈如水

尚未进行身份认证

市场经济条件下,每个人都有一个价,你有哪些本事?你值不值这个价? 人生如茶,经历浮沉,经历苦难浸泡,方能长大.

等级
TA的排名 5k+

20190815 构建者模式

Builder模式核心思想1、在静态内部类中,对外提供获取外部类对象的方法,如build(),create()等。2、创建外部类的对象时,传入静态内部类对象,以便把参数传递到外部类中。3、在外部类中,提供构造方法,传递静态内部类对象,通过静态内部类对象,给外部类的成员变量赋值。4、内部类字段要与外部类的字段相同。5、内部类中set方法,返回this对象,以便进行链式调用。...

2019-08-15 19:13:51

20190808 日志切面类

主要用于打印请求和响应信息日志打印需求:切面设计,controller层拦截,请求信息获取,请求头,请求参数,响应信息的获取,日志打印。packagecom.yunque.www.springbootdemo.interceptor;importcom.alibaba.fastjson.JSONArray;importcom.alibaba.fastjson.JSONOb...

2019-08-08 16:13:08

20190802 Spring MVC拦截器

@LoginPermission注解的使用通过拦截器进行判断,通过方法签名获取当前访问的方法上面是否使用@LoginPermission注解SpringMVC中的拦截器/过滤器HandlerInterceptorAdapter的使用SpringMVC的拦截器,不仅可实现Filter的所有功能,还可以更精确的控制拦截精度。SpringMVC提供的org.springfr...

2019-08-02 19:03:12

20190802 AES加解密

常用的加密解密算法高级加密标准(英语:AdvancedEncryptionStandard,缩写:AES)对称加密算法也就是加密和解密用相同的密钥。AES加密函数,AES解密函数。密钥K:用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏,通常是通过非对称加密算法加密密钥,然后再通过网络...

2019-08-02 18:07:28

20190802 图片url处理

图片云存储地址头的处理:/***通用地址头处理*/@AutowiredprivatePropertiesConfigurationpropertiesConfiguration;publicvoidprocessImageUrl(){DoctorDtodoctorDto=newDoctorDt...

2019-08-02 12:12:09

20190731 算法复杂度

算法复杂度是对性能的考量。算法的复杂度如何与自己的项目设计关联起来?算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和时间却会有很大的区别。那么我们应该如何去衡量不同算法之间的优劣呢?主要还是从算法所占用的「时间」和「空间」两个维度去考量。时间维度:是指执行当前算法所消耗的时...

2019-07-31 16:24:41

20190730 跨服务调用

Spring提供多种方式处理http请求。1、ResponseEntity标识整个http请求响应:状态码、头部信息以及相应体内容。2、如果需要使用ResponseEntity,必须在请求点返回,通常在springrest中实现。ResponseEntity是通用类型,因此可以使用任意类型作为响应体。3、ResponseEntity提供了两个内嵌的构建器接口:HeadersBuil...

2019-07-30 21:14:37

20190728 冗余设计

在设计数据库时,某一字段属于一个表,但它又同时出现在另一个或多个表,且表示的意义完全相同,那么这个字段就是一个冗余字段。关系数据库中的数据冗余主要是指关系数据库中同一信息数据的重复存贮。数据冗余浪费了宝贵的资源,应尽量减少。但关系数据库中为实现一些功能有些数据冗余是必需的。必需的数据冗余主要用于以下用途:(1)数据间建立联系,如两表间通过共同属性建立联系;(2)数据恢复,如建立备份文件...

2019-07-28 23:28:18

20190726 Redis缓存设计

CacheClient的使用1、查询一次和查询两次,效率不同;判断是否存在,如果存在就取出;直接从redis中取,然后判断为空。2、直接存储对象和取出对象,redis支持这种操作,指定泛型类型。3、通过设置过期时间,实现缓存同步(删除cache)4、判断key是否存在,exist(),不用判断直接取值判断是否为空即可。5、Redis中是把数据保存到内存中的,但是它也会定期...

2019-07-26 13:24:48

20190725 全局异常处理器

出现异常,返回给前端一个ResponseEntity对象,里面包含异常信息。是否需要区分异常级别?packagecom.yunque.www.springbootdemo.exceptions;importcom.yunque.www.springbootdemo.pojo.BaseResult;importorg.slf4j.Logger;importorg.slf4j...

2019-07-25 17:14:04

20190724 JVM参数启动内存小,响应时间长

jvm启动内存参数小,导致响应时间长现象:工作站有一会偶尔加载很慢,通过抓包显示接口响应时间为3秒。原因:Doctor微服务有一台机器,启动内存参数太小,导致响应时间比较长;现在已经对虚拟机参数进行了优化,服务重启,响应正常。启动参数小:导致第一次压测时tps比较低,并且也受到缓存的影响。通过调节启动内存的大小,解决接口响应慢的问题。内存大小对性能的影响(机器处理任务的速...

2019-07-24 15:17:51

20190723 BaseController封装

1、BaseService的封装思路一样,很多通用性的方法都可以放在父类里面2、请求头获取信息;3、工具性操作封装到父类里面;4、如果获取不到值,直接抛异常;packagecom.yunque.www.springbootdemo.base;importcom.alibaba.fastjson.JSON;importcom.alibaba.fastjson.JSO...

2019-07-23 19:53:30

20190723 架构师-形成技术体系

1、springcloud的五大神兽和服务治理。2、软件开发流程:概要设计详细设计,数据库设计,dao层编码,service层编码,功能接口定义。3、三高问题的解决方案(性能优化方案,都是为了解决三高问题)4、jvm虚拟机体系(内存,GC,调优,常用命令以及图形化工具;章节目录)5、mysql数据库体系(索引,执行计划,架构,资源消耗;章节目录)当下正在解决的问题、请教安栋...

2019-07-23 18:16:25

20190722 maven的SNAPSHOT版本与RELEASE版本的区别

1、SNAPSHOT版本代表不稳定(快照版本),还在处于开发阶段,随时都会有变化。当上传同样的版本号jar包的时候,SNAPSHOT会在版本号的后面自动追加一串新的数字,即日志标签;2、RELEASE则代表稳定的版本(发布版本),一般上线后都会改用RELEASE版本。在maven的依赖管理机制中,唯一标识一个依赖项是由该依赖项的三个属性构成的,分别是groupId、artifactId以及...

2019-07-22 22:43:00

20190722 优雅的接口设计

哪些能够落实到自己的代码里面?接口设计应该考虑哪些问题或者说考虑到哪些方面?你设计的接口,够优雅吗?在设计接口时,有很多因素要考虑:接口的业务定位 接口的安全性 接口的可扩展性 接口的稳定性 接口的跨域性 接口的协议规则 接口的路径规则 接口单一原则 接口过滤及接口组合一规范性建议1.职责原则在设计接口时,必须明确接口的职责,即接口类型,接口应解...

2019-07-22 11:20:07

20190719 接口的幂等性

接口幂等性1、当前接口设计的时候,是否要考虑接口的幂等性?2、在高并发的核心技术中如何实现幂等性?对外提供的Api如何保证幂等?3、后端处理前端的重复请求?为了解决以上问题,就需要保证接口的幂等性,接口的幂等性实际上就是接口可重复调用,在调用方多次调用的情况下,接口最终得到的结果是一致的。有些接口可以天然的实现幂等性,比如查询接口,对于查询来说,你查询一次和两次,对于系统来说...

2019-07-19 22:30:41

20190717 本地缓存

多级缓存设计缓存分为本地缓存和分布式缓存(远程缓存)。以java为例,使用自带的map或者guava实现的是本地缓存,最主要的特点是轻量以及快速,生命周期随着jvm的销毁而结束,并且在多实例的情况下,每个实例都需要各自保存一份缓存,缓存不具有一致性。本地缓存----->远程缓存---->mysql数据库使用本地缓存的好处:1)减少和redis的交互。2)速度上,...

2019-07-17 13:44:59

20190716 事务以及隔离级别

一、事务的作用:1)并发情况下如何保持数据一致性的问题?通过事务可以解决。2)如果对数据库的操作失败了,可以恢复到正常状态。3)通过设置隔离级别,防止彼此的操作相互干扰。二、核心理论:1、事务所具备的特征:ACID1)同时成功同时失败其实说的是事务的原子性,不可分割。2)事务执行前后的逻辑一致性;账户加减。3)隔离性:如果存在多个事务,事务之间不应该项目干扰。...

2019-07-17 10:31:08

20190715 Spring Aop与注解处理

使用注解匹配SpringAop切点表达式如何把注解和注解解析器联系起来?如果不结合起来,就会把很多方法给切到,导致当前的注解逻辑用到很多方法上。1)通过方法签名判断,当前方法上是否使用了这个注解。2)直接把切面表达式设置成这个注解;只有使用了这个注解的方法,才会执行注解解析逻辑。切点表达式的两种写法。使用注解的写法更好。@Pointcut("@annotation(注解...

2019-07-15 16:24:44

20190714 Mysql系列教程笔记

数据库:添加数据源:数据库的部分。数据源已经准备好了。列的字符集和数据表的字符集以及排序规则,否者会出现乱码。Mysql的内置函数。数据表的建立:列的字符集和新建表的字符集。创建数据表的时候,没有指定字符集,导致汉字存不进去,sql执行失败。--在mysql中,查询某字段为空时,切记不可用=null,--而是isnull,不为空则是isno...

2019-07-14 20:01:43

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。