自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 手写代码提炼Spring核心原理

基本实现思路一.配置阶段:配置web.xml (DispatcherServlet) —>设定init-param(contextConfigLocation=classpath:application.xml)—>设定url-pattern(/*)—>配置Annotation(@Controller @Service @Autowired @RequestMapping)...

2019-08-10 20:39:38 303

原创 Spring中常用的设计模式及编程思想

工厂模式只对结果负责,封装创建过程。例:BeanFactory,Calender单例模式保证独一无二。例:ApplicationContext,Calender原型模式拔一根猴毛,吹出万千个。例:ArrayList,PrototypeBean代理模式找人办事,增加职责。例:ProxyFactoryBean,JdkDynamicAopProxy、CglibAopProxy委派模式干...

2019-07-28 13:15:08 148

原创 结合JDK中的API落地观察者模式

观察者模式定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新,属于行为型模式。观察者模式有时也叫做发布订阅模式。观察者模式主要用于在关联行为之间建立一套触发机制的场景。观察者模式在现实生活应用非常广泛,比如:微信朋友圈动态通知,邮件通知,广播通知。下面以JDK中相关的API来演示:朋友圈类(被观察者):packa...

2019-07-20 18:01:12 158

原创 装饰者模式和适配器模式的对比

装饰者模式最本质的特征是将原有类的附加功能抽离出来,简化原有类的逻辑。抽象的装饰类也是可有可无的。适配器模式和装饰者模式都是属于包装模式,所以对这2个模式进行了一些横向的对比:装饰者模式:是一种非常特别的适配器模式,装饰者和被装饰者都实现了同一个接口,主要目的是为了扩展之后依旧保留OOP关系。满足is-a关系,注重的是覆盖和扩展,属于系统设计前就要考虑的模式。适配器模式:没有层级关系,适配器和...

2019-07-20 17:03:10 437

原创 浅谈装饰者模式

装饰者模式的应用场景装饰者模式是指在不改变原有对象的基础上,将功能附加到对象上,提供了比继承更有弹性的替代策略。适用于以下场景:1.用于扩展一个类的功能或给一个类添加附加职责。2.动态的给一个对象添加功能,这些功能可以再动态的撤销。下列以煎饼摊为例(继承模式实现):煎饼类:package decorator;/** * Created by Lenovo on 2019-7-20...

2019-07-20 13:42:47 117

原创 重构第三方登录自由适配的业务场景

对于一些老系统应该都有登录接口,但是随着业务的发展和社会的进步,单纯地依赖用户名密码登录显然不能满足用户需求了。现在,我们大部分系统都已经支持多种登录方式,如QQ登录,微信登录,手机登录,微博登录等等,同时保留用户名密码的登录方式。虽然登录形式丰富了,但是登录后的处理逻辑可以不必改,同样是将登录状态保存到session,遵循开闭原则。首先创建统一的返回结果ResultMsg类package ...

2019-07-18 14:03:17 540 1

原创 初识适配器模式

适配器的应用场景适配器模式是指将一个类的接口转换成客户期望的另一个接口,使原本的接口不兼容的类可以一起工作,属于结构型设计模式。适配器适用于以下几个业务场景:1.已经存在的类,它的方法和需求不匹配(方法结果相同或者相似)的情况。2.适配器模式不是软件阶段考虑的设计模式,是随着软件维护,由于产品不同,不同厂家造成功能类相似而接口不相同的情况下的解决方案。下面用代码实现生活中给手机充电使用电...

2019-07-18 10:45:56 106

原创 利用模板模式重构JDBC操作业务场景

创建一个模板类JdbcTemplate,封装所有的JDBC操作。以查询为例,每次查询的表不同,返回的数据结构也就不一样。我们针对不同的数据,都要封装不同的实体对象。而每个实体封装的逻辑都不一样的,但是封装前后的处理流程是不变的,因为,我们可以使用模板方法模式来设计这样的业务场景。先创建约束ORM逻辑的接口。RowMapperpackage JDBCTemplate;import java....

2019-07-18 09:25:28 179

原创 初识模板模式

模板模式的应用场景1.一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。2.各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。以课程创建流程为例:发布预习资料–>制作课件PPT–>在线直播–>提交课堂笔记–>提交源码–>布置作业–>检查作业。NetworkCourse抽象类package template;/**...

2019-07-18 07:39:21 88

原创 结合注册式单例设计的策略模式

结合注册式单例设计的策略模式业务场景为:各种促销活动,多种促销策略首先创建一个促销策略的抽象package strategy;/**促销策略抽象Created by Lenovo on 2019-7-15.*/public interface PromotionStrategy {void doPromotion();}创建我们的各种促销策略package strate...

2019-07-15 16:58:59 159

原创 委派模式的定义以及应用场景

委派模式的定义及应用场景例如:老板(Boss)给项目经理(leader)下达任务,项目经理会根据实际情况给每个员工派发工作任务,待员工把工作任务完成之后,再由项目经理汇报工作进度和结果给老板。下面用代码模拟下这个业务场景 。相关的类图创建IEmploye员工接口:package delegate;/**Created by Lenovo on 2019-7-15.*/publ...

2019-07-15 14:39:10 660

原创 为什么JDK动态代理中要求目标类实现的接口数量不能超过65535个

先明确几个概念:Class文件是一组以8字节为基础单位的二进制流各个数据项目严格按照顺序紧凑排列在class文件中中间没有任何分隔符,这使得class文件中存储的内容几乎是全部程序运行的程序Java虚拟机规范规定,Class文件格式采用类似C语言结构体的伪结构来存储数据,这种结构只有两种数据类型:无符号数和表接口索引计数器(interfaces_count),占2字节参考第一句话:cl...

2019-07-11 09:18:02 2805 3

原创 记录:结合静态代理对分表分库数据源实现动态设置

根据订单创建时间自动按年分库订单类:package DBSource;/**Created by Lenovo on 2019-7-2.*/public class Order {public Object orderInfo;public Long createTime;public String id;public Long getCreateTime() {retu...

2019-07-02 11:10:12 191

原创 浅谈利用原型模式进行代码重构

原代码:(将一个对象中的值赋到另一个对象中)public void setParam(ExamPaperVo vo){ ExamPaper examPaper = new ExamPaper(); //试卷主键 examPaper.setExaminationPaperId(vo.getExaminationPaperId()); //剩余时间 curForm.setLeavTime(examP...

2019-07-01 09:48:25 351

原创 浅谈单例模式

1.每种单例写法的优缺点:饿汉式单例:在类加载的时候就立即初始化,并且创建对象。绝对线程安全,在线程还没出现以前就是实例化了,不可能存在访问安全问题。优点:没有加任何锁,执行效率比较高,在用户体验上比懒汉式更好。缺点:类加载的时候初始化,不管用不用得着都要占用内存,适合整体项目单例对象比较少的情况。懒汉式单例:被外部类调用的时候内部类才会加载。懒汉式单例存在线程安全问题,所以在方法上加锁进...

2019-06-30 17:57:20 108

原创 浅谈工厂模式

一.简单工厂的UML图(未优化)优化后工厂方法模式UML图:抽象工厂模式UML图:二.产品等级相当于后面增加的录播,课堂的接口,扩展产品族的产品等级Java课程video以及Python课程video。三.简单工厂模式:使用了简单工厂模式后,相比不使用工厂模式,隐藏了实现类的细节,客户端的调用简单了 ,但是如果要新增业务,Create中就需要根据产品链进行代码的修改,不符合开闭原...

2019-06-30 17:56:08 100

原创 IDEA常用快捷键

ctrl+z撤销ctrl+shift+z 撤销冲正ctrl+f 当前文件检索ctrl+shift+f 全文检索ctrl+r 当前文件查找替换ctrl+shift+r 全文检索替换Double Shift 全局查找Alt +F7 查找当前这个方法被调用的地方ctrl+alt+B快速定位当前方法的实现Alt+insert 生成构造方法等注释:CTRL+/CTRL+shift+...

2019-06-29 15:44:15 102

原创 变成穷人的18种方法

第一种:从来不谈钱第二种:从来没有储蓄习惯第三种:轻信别人的建议第四种,不判断风险,只看收益第五种:没有独立思考的能力第六种:抱有侥幸心理第七种:永远没有行动第八种:从众心理第九种:用时间来省钱第十种:把钱看得比机会更重要第十一种:宁愿花时间省钱,也不愿意花时间去学习赚钱第十二种:不知道加杠杆可以获得更大的价值第十三种:只做紧急的事,不做重要的事第十四种:没有概率思维第...

2019-06-29 12:43:17 420

原创 指数温度计算公式

PE温度计算公式:=NORMDIST(B3,AVERAGE(B$2:B3),STDEV(B$2:B3),1)*100PB温度计算公式:=NORMDIST(D3,AVERAGE(D$2:D3),STDEV(D$2:D3),1)*100指数温度:=(C3+E3)/2

2019-06-23 16:01:05 9560 1

原创 Centos7 防火墙相关操作以及添加开放端口

1、firewalld的基本使用启动: systemctl start firewalld查看状态: systemctl status firewalld停止: systemctl disable firewalld禁用: systemctl stop firewalld2.systemctl是CentO...

2019-06-20 09:53:19 241

原创 VIM常用命令小记

vim 命令vim 新文件/旧文件 进入命令模式在命令模式下:yy复制一行 nyy 复制n行 pP前后粘贴 dd删除一行ndd 删除n行 i,o,a进入插入模式/文本编辑模式 输入esc回到命令模式: 进入末行模式 :w 保存 :q 退出 esc回到命令模式help 将vim的所有命令都显示出来/ 正则 向下查找?正则 向上查找...

2019-06-18 16:59:35 405

原创 如何进行linux的java系统环境的配置

配置系统java的环境变量cd /etcls | grep profilevim profilei 在最后面加入下面的语句export JAVA_HOME=/usr/local/java/jdk1.8.0_211export JRE_HOME=/usr/local/java/jdk1.8.0_211/jreexport CLASSPATH=.export PATH=/...

2019-06-18 16:57:55 88

转载 《富爸爸穷爸爸》金句摘要

1.只要把支出控制在资产项能够产生的现金之下,就越来越富有,随着这种投资过程不断继续,最终走上致富之路。2.你事业的重心是你的资产项,而不是你的收入项。当你关注自己的事业时,就是意味着建立自己牢固的资产。我上班,但同时关注我的事业,才是正确的理财思维模式。3.我们要养“鹅”,并且永远不能杀“鹅”。如果你想快一点富有,你就把每次收入的50%存入一个账户中,作为你的“鹅”,无论收入多与少,都要这么...

2019-06-10 16:36:38 388

原创 为什么半透明模式不能对同一对象进行多次装饰

为什么半透明模式不能对同一对象进行多次装饰掐准透明模式中的装饰者具体实现类中对于抽象构件方法的实现,Component component,componentSB,componentBB; //全部使用抽象构件定义component = new Window();componentSB = new Scroll...

2019-05-26 17:40:07 1445

原创 关于Spring Boot你不得不知道的事

**关于Spring Boot你不得不知道的事**一.Spring是属于Pivotal的产品。二.Spring Framework,Spring Boot和SpringCloud之间的关系是:三者都是Spring的成员,功能各有不同,SpringCloud依赖SpringBoot实现微服务;SpringBoot默认集成SpringMVC组件;SpringCloud使SpringMVC编写微...

2019-05-25 22:39:26 289

空空如也

空空如也

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

TA关注的人

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