自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

枨曦的博客

https://github.com/jiangjc3

  • 博客(14)
  • 收藏
  • 关注

原创 利用自定义注解+aop+redis防止重复提交

项目开发一个比较常见的需求就是防止重复提交,一般来说前端可以通过将提交按钮置灰等操作达到目的,但这个方案仍旧有一些缺陷,所以最好由后端来做控制。本文笔者将用自定义注解加redis和aop来实现。**1、**我的项目是springboot项目,首先添加redis和aspectj的依赖。<dependency> <groupId>org.springframework...

2019-12-09 17:56:29 2758

原创 双重检索(DCL)的思考: 为什么要加volatile?

在学习单例模式的时候, 小伙伴们都会学习到一种叫作双重检索的单例模式, 如下public class Singleton { private volatile static Singleton instance; private Singleton(){} public static Singleton getInstance() { if (inst...

2019-07-25 22:22:49 4200 15

原创 Springboot整合jsp报404(Whitelabel Error Page)解决方案整理

很多小伙伴在刚开始用Springboot整合jsp开发时都会遇到这个问题, 按照别人的教程一步一步搭建, 但就是会报404, 在网上找遍了方法都解决不了。笔者之前因为这个问题忙活了整个下午才把问题解决, 现在把解决方法整理起来, 希望对大家有所帮助。不足之处,欢迎大家指正, 若还有其他方法, 欢迎补充。首先这个问题很诡异, Springboot版本的不同, IDEA的版本不同, 都有可能造成4...

2019-07-19 14:18:35 2266 2

原创 07迪米特法则

基本介绍1、一个对象应该对其他对象保持最少了解,也就是说一个实体应该尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。2、类与类关系越密切,耦合度越大3、迪米特法则又叫最少知道原则,即一个类对自己依赖的类知道得越少越好。也就是说,对于被依赖的类不管多复杂,都尽量将逻辑封装在类的内部。除了对外提供public方法,不对外泄露任何信息。4、迪米特法则还有个更简单的定义:只与直接朋友...

2019-07-07 15:45:27 128

原创 06开闭原则

基本介绍1、开闭原则是编程中最基础最重要的原则,我们编程中遵循其他原则,以及使用设计模式的最终目的就是为了达到开闭原则。2、一个软件实体如类、模块和函数应用对扩展开放(对功能提供方),对修改关闭(使用方)。比如我们增加了某一个功能后,增加了一个类,但是我们原先使用的方法没有做改变。总之就是用抽象构建框架,用实现扩展细节。3、当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修...

2019-07-06 22:35:46 128

原创 05里氏替换原则

基本介绍继承在程序设计中带来了便利,也带来了弊端。比如使用继承会给程序带来侵入性,程序的可移植性降低,增加对象之间的耦合性。如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所涉及到子类的功能都有可能产生故障。如何正确的使用继承?答案是里氏替换原则:1、引用基类的地方必须透明的使用其子类对象。2、 在使用继承时,遵循里氏替换原则,在子类中尽量不要重写...

2019-07-06 18:44:52 109

原创 04依赖倒转原则

基本介绍依赖倒转原则是指:1、 高层模块不应该依赖低层模块,二者都应该依赖其抽象2、 抽象不应该依赖细节,细节应该依赖抽象3、 依赖倒转的中心思想是面向接口编程4、 依赖倒转原则是基于这样的设计理念: 相对于细节的多变性,抽象的东西要稳定的多,以抽象为基础搭建的框架比以细节的框架要稳定的多。在JAVA中,抽象指的是接口或者抽象类,细节就是具体的实现类。5、 使用接口或抽象类的目的是指定...

2019-07-06 17:13:34 1356

原创 03接口隔离原则

接口隔离原则基本介绍代码示例基本介绍客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。应该使用多个专门的接口,而不是使用单一的总接口。代码示例interface MyIntf{ void operation1(); void operation2(); void operation3(); void operation4();...

2019-07-06 16:19:35 122

原创 记一次WebLogic10 PermGen space解决方法

最近在用IDEA做项目开发时,发现项目启动后老是报java.lang.OutOfMemoryError: PermGen space,OutOfMemoryError是内存溢出,PermGen space说明是永久代(即方法区)发生异常。产生的原因是JVM虚拟机对永久代区域的内容做垃圾回收造成应用动态加载类文件过多引起的内存溢出错误。所以,需要设置永久代区域的最大值。在weblogic域的bi...

2019-07-06 13:11:23 1366

转载 由12306谈谈网站性能技术

最近在看学习分布式相关的知识,正好在网上看到了陈皓老师(左耳朵耗子)几年前写的这篇文章,读下来觉得很有意义,尤其是对企业级系统的性能优化提出了很多解决方案和思路。遂决定整理过来,方便以后回顾。以下是原文:12306.cn网站挂了,被全国人民骂了。我这两天也在思考这个事,我想以这个事来粗略地和大家讨论一下网站性能的问题。因为仓促,而且完全基于本人有限的经验和了解,所以,如果有什么问题还请大家一起...

2019-07-06 13:05:34 636

原创 初识Lambda表达式

lambda表达式是JAVA8中新引进的特性,它是一种简洁的语法定义代码块,是可传递的代码块,可以在以后执行一次或多次。它的语法格式是: 参数 -> 表达式如: param -> //do somethingslambda写的好可以极大的减少代码冗余,同时可读性也好过冗长的内部类,匿名类等。如:我们要循环打印一个map,用以前的写法Map<String, Object...

2019-07-06 13:01:49 130

原创 Hashtable、HashMap、TreeMap心得

PS: 之前这篇文章在慕课网的手记上发表的,现在转到CSDN上来三者均实现了Map接口,存储的内容是基于key-value的键值对映射,一个映射不能有重复的键,一个键最多只能映射一个值。(1) 元素特性 HashTable中的key、value都不能为null;HashMap中的key、value可以为null,很显然只能有一个key为null的键值对,但是允许有多个值为null的键值对;Tr...

2019-07-06 12:54:19 82

原创 02单一职责原则

基本介绍一般是对于类级别来说的,一个类应该只负责一个职责。或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。如果类A负责两个不同的职责1 2,当职责1需求更改时,有可能造成职责2执行出错。所以应该将类A的粒度分解为A1 A2。代码示例我们创建一个明星类,并且提供一个paly方法。方式1:public class SingleDuty01 { public static...

2019-07-06 12:41:59 114

原创 01什么是设计模式

设计模式什么是设计模式设计模式的目的设计模式的七大设计原则什么是设计模式设计模式是前人对代码开发总结出来的经验和智慧,针对不同类型的问题,设计出优雅的解决方案。就像武侠小说里面的武功秘籍,它是一套招式,学会了之后就可以用它行走江湖。设计模式的原理基于面向对象思想,学习完设计模式后会对封装继承多态有更深入的理解。我们学习设计模式的时候,我们不仅要学习它的语法和使用方式,更要学习它的设计思想,掌...

2019-07-06 12:03:24 134

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除