- 博客(33)
- 资源 (9)
- 收藏
- 关注
原创 Mac下端口被占用的解决方式
打开终端:查看端口号的进城情况: sudo lsof -i tcp:port port : 你所被占用的端口号 例如8080kill掉被占用的端口的进程: kill PID 每一个进程都会有一个PID
2017-08-30 16:29:44 12600 1
原创 pring Boot 在注入第三方的Service或Repository时出现错误的解决办法
先说一下错误出现的场景: 前几天在写一个项目的时候,需要使用到第三方的底层Repository和Service.所以就将将要引入的代码使用idea打包成jar.通过pom依赖进来.代码编写时没有出现任何问题,jar正常引入.但是代码写完之后编译时,出现错误.org.springframework.beans.factory.NoSuchBeanDefinitionException: No...
2017-08-30 13:47:00 2185
原创 JAVA开发的23种设计模式之 --- 中介者模式
中介者模式概述 : 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式的相互引用,从而使其耦合松散,而且可以独立地改变他们之间的交互中介者模式所包含的角色Mediator : 中介者角色.在里面定义各个部门之间的交互对象,ConcreteMediator : 具体中介者实现角色.维护各个部门之间的交互关系Deparement : 部门角色.所有具体部门类的父
2017-08-30 13:43:55 300
原创 JAVA开发的23种设计模式之 --- 访问者模式
访问者模式概述:表示一个作用于某对象结构中的各元素的操作.它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作.访问者模式所包含的角色Visitor : 抽象访问者角色.为该对象结构中具体元素角色声明一个访问操作接口.该操作接口的名字和参数标识了发送访问请求给具体访问者的具体元素角色.这样访问者就可以通过该元素角色的特定接口直接访问它.ConcreteVisit :
2017-08-27 11:35:50 293
原创 JAVA开发的23种设计模式之 --- 状态模式
状态模式概述:允许一个对象在其内部状态改变时改变他的行为.对象看起来似乎修改了它的类帮助理解:可以将状态模式的场景理解为QQ的状态,不同的状态对于他的QQ好友来说,行为是不一样的.例如:隐身状态对于好友来说不可见.总结下来状态模式就有两个要点:1.可以通过改变状态来获得不同的行为.2.对象看起来有所变化(在例子中可以理解为,你的好友可以看到你的变化)使用场景:对象的行为依赖于他的状态.并且
2017-08-24 18:23:51 292
原创 JAVA开发的23种设计模式之 --- 备忘录模式
备忘录模式概述:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样可以将对象恢复到原先保存的状态.帮助理解:备忘录模式就是为对象提供一个备份的地方,当对象想要回滚到前一个状态时,调用备忘录对象直接就可以恢复.备忘录模式说包含的角色Originator : 原发器,也就是发起者.记录有当前时刻自身的内部状态,负责创建一个备忘录Memento,用于记录
2017-08-24 18:19:18 367
原创 JAVA开发的23种设计模式之 --- 命令模式
命令模式概述:将请求封装成一个对象,从而使我们可用不同的请求对客户进行参数化解决的问题:在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系.但是在某些场合.需要对行为进行记录,撤销/重做,事务等处理.这种无法抵御变化的紧耦合是不合适的.在这种情况下就需要将"行为请求者”与”行为实现者”解耦,将一组行为抽象成对象.可以实现二者之间的松耦合.命令模式所包含的角色命令角色(Com
2017-08-21 18:11:28 323
原创 JAVA开发的23种设计模式之 — 责任链模式
责任链模式概述:责任链模式是一种对象的行为模式,在责任链模式中,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知道这个链上的哪一个对象最终处理了这个请求,这使得系统可以在不影响客户端的情况下动态的重新组织和分配责任.帮助理解:可以将责任链模式理解为链表的那种思想,多个处理方法在一条链上,每一个接收者(
2017-08-21 17:13:10 321
原创 JAVA开发的23种设计模式之 — 迭代器模式
迭代器模式概述:提供一种方法顺序访问一个聚合对象中各个元素,而无须暴露该对象的内部表示.帮助理解:迭代器模式就是分离了集合对象的遍历行为.抽象出一个迭代器来负责,这样即可以做到不暴露集合的内部结构,又可以让外部代码透明的访问集合内部的数据.迭代器模式包含的角色迭代器角色:定义遍历元素所需要的方法,一般来说肯定会有这三个方法.取得下一个元素的方法next(),判断是否遍历结束的方法h
2017-08-21 17:10:15 300
原创 JAVA开发的23种设计模式之 --- 观察者模式
观察者模式概述:定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于他的对象都能得到通知并自动刷新.帮助理解:观察者模式可以理解为,在一个一对多的关系模式中,例如一个微信公众号有多个关注用户,那么关注该微信公众号的微信用户就是观察者,微信公众号就是被观察者.一个微信公众号会有多个关注用户,这就是其中的一对多的关系.然后当一个对象的状态发生改变就是说当被观察者(微信公
2017-08-19 23:29:57 346
原创 JAVA开发的23种设计模式之 --- 模板模式
模板模式概述:定义一个操作中的算法的框架,而将一些步骤延迟到子类中.模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.模板模式是一种基于继承的代码复用技术.帮助理解:模板模式可以理解为,有一个流程性的算法框架,现在将这个流程分解成一个个的步骤,其中有一些步骤是稳定不变的,有些是可能变化得,通过一个抽象类将所有的步骤抽象成一个个的方法.抽象类中有一个称之为”模板方法
2017-08-18 18:32:24 422
原创 JAVA开发的23种设计模式之 --- 策略模式
策略模式概述:定义一系列的算法,把它们一个个封装起来,并且使他们可以相互替换.这样策略模式使得算法的变化独立于使用算法的客户使用场景在有多种算法相似的情况下,使用if...else所带来的复杂和难以维护一个系统中有很多类,而区分他们的只是他们直接的行为帮助理解:策略模式的核心是对算法的封装该模式重点在于实现对算法(策略)的选择做法就是把需要变化的部分独立出来,这个部分就
2017-08-17 18:49:15 295
原创 JAVA开发的23种设计模式之 --- 享元模式
享元模式概述:当会创建大量对象时,可能会占用很多的内存,这个时候我们选择把其中重复创建的那部分对象抽取出来,如果有使用到该对象并且已经创建过了.就直接返回内存中已有的对象,避免重新创建.使用场景系统中有大量相似对象,并消耗大量的内存这些对象可以按内蕴状态分为很多组,当把外蕴状态从对象中剔除出来时,每一组这样的对象都可以用一个对象来代替系统不依赖与这些对象身份,这些对象是不可分辨的.
2017-08-17 18:46:36 271
原创 JAVA开发的23种设计模式之 --- 组合模式
组合模式概述:将对象组合成树形结构以表示”部分-整体”的层次结构.使得用户对单个对象和组合对象的使用具有一致性.应用场景:希望忽略单个对象和组合对象的区别,统一使用组合结构中的所有对象.也就是将单个对象和组合对象中的统一的地方封装起来.供外部调用.组合模式中的角色组合部件:它是一个抽象类,为要组合的对象提供统一的接口.叶子:在组合中表示子节点对象,叶子节点已经是最底层不能再有子节点
2017-08-17 18:43:19 447
原创 JAVA开发的23种设计模式之 --- 桥接模式
桥接模式概述:将抽象部分与他的实现部分分离,这样抽象化与实现化解耦,使他们可以独立的变化.如何实现解耦的呢,就是通过提供抽象化和实现化之间的桥接结构.应用场景实现系统可能有多个角度分类,每一种角度都可能变化.解释:桥接模式将继承模式转化成关联关系,他降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量.理解抽象化,实现化,解耦抽象化:将复杂物体的一个或几个共同
2017-08-17 18:31:29 4742 1
原创 JAVA开发的23种设计模式之 --- 外观模式
外观模式概述:为子系统中的一组接口提供一个一致的界面,外观(Facade)模式定义了一个高层接口,这个接口使得这一子系统更加容易使用.使用场景当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。Facade可
2017-08-17 18:26:17 311
原创 JAVA开发的23种设计模式之 — 装饰器模式 && 代理器模式
装饰器模式概述 : 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰器模式相比生成子类更加灵活维基百科解释 : 通过使用修饰模式,可以在运行时扩充一个类的功能.原理是 :增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数.装饰类实现新的功能,但是,在不需要用到新功能的地方,他可以直接调用原来的类中的方法.修饰类必须和原来的类有相同的接口.使
2017-08-17 18:20:11 2713 1
原创 JAVA开发的23种设计模式之 --- 适配器模式
适配器模式概述 : 将一个类的接口转换成另一个客户希望的接口.适配器模式使得原本由于接口不兼容而不能一起工作的类可以一起工作.适配器模式的种类类的适配器模式对象的适配器模式接口的适配器模式涉及角色目标(Target)角色 : 所期待得到的接口源(Adapee)角色 : 现在需要适配的接口适配器(Adaper)角色 : 适配
2017-08-15 19:23:01 346
原创 JAVA开发的23种设计模式之 --- 原型模式
原型模式:定义 : 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象.(主要用于对象的复制).要被复制的原型类(Prototype)需要具备的条件实现Cloneable接口.在JAVA中有一个Cloneable接口,他唯一的作用就是在运行时通知虚拟机可以安全的在实现了此接口的类上使用clone方法.在JAVA虚拟机中,只有实现了Cloneable接口的类才可以被拷贝,否
2017-08-15 19:08:15 293
原创 JAVA开发的23种设计模式之 --- 建造者模式
建造者模式定义 : 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.也就是说用户不需要知道一个复杂的对象时如何创建的.用户只需要知道使用构造不同对象的方法(Director)就能得到一个完整的复杂对象的实例建造者模式通常包含的几个角色Builder : 给出的一个抽象接口,规范产品对象的各个组成部分的建造.这个接口先声明必须要实现的复杂对
2017-08-15 19:05:22 396
原创 JAVA开发的23种设计模式之 --- 单例模式
单例模式概述 : 是一种常用的软件设计模式.在它的核心结构中只包含一个被称为单例的特殊类.通过单例模式可以保证系统中一个类中只有一个实例.要点单例类只能有一个实例,它必须自行创建这个实例他必须自行向整个系统提供这个实例.实现单例模式的类只提供私有的构造函数类定义中含有一个该类的静态私有对象该类提供了一个静态的公有的函数用于创建或获取他本身的静态私有对象
2017-08-14 18:54:56 370
原创 JAVA开发的23种设计模式之 --- 工厂模式 && 抽象工厂模式
设计模式概述 : 是一套被反复使用,多数人知晓的,经过分类的,代码设计经验的总结.目的 : 提高代码的可重用性,让代码更容易被他人理解,保证代码的可靠性.设计模式使代码编写真正工程化;设计原则 单一职责原则 (设计模式五大原则):一个类,只有一个引起它变化的原因。应该只有一个职责。每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。这会
2017-08-14 18:44:54 319
原创 Maven 引Spring Boot 项目
1.Spring Boot 的maven插件(即Spring Boot Maven plugin) 能够以Maven的方式为项目提供Spring Boot的支持.即为Spring Boot 项目提供了执行Maven操作的可能性2.Spring Boot Maven plugin能够将Spring Boot应用打包为可执行的jar或war文件.然后以通常的方式运行Spring Boot应
2017-08-12 10:34:48 572
原创 Maven学习 --- <profile>
1.profile的作用是:定义一系列的配置信息.是根据不同的构建环境,对构建(build)过程进行动态配置的手段.然后使用条件来选择使用哪一个配置信息 2.使用activaByDefault>标签可以并且为true时,表明这个profile是默认开启的.也就是说当没有指定其他的为激活状态时,设置true的是默认激活的. 2.如果我们同时定义多个profile,
2017-08-12 10:32:23 673
原创 Maven学习 --- <distributionManagement>
1.的作用: 负责管理构件的发布。这是一个环境变量 downloadUrl>URL downloadUrl> 其它的Maven项目可以通过该URL下载并引用当前Maven项目的构件.status>当前Maven项目的状态.可用的状态有以下几种.并且这个值不是人为设置的.而是Maven自动设置的none : 未指明状态,默认值converted : 该Maven项目
2017-08-12 10:27:14 22522 2
原创 Maven学习 — <build> 中的 <plugins>元素的作用
1.元素的作用是: 给出构建过程中用到的插件.groupId> : 项目或者组织的唯一标识artifactId>项目的通用名称artifactId>项目的通用名称version> 项目的版本 extensions>是否加载该插件的扩展,默认为falseinherited> 该插件的configuration>中的配置是否可以被继承,默认为trueconfiguration> 该
2017-08-12 10:25:29 12300
原创 MAven学习 — <dependencies> && <dependencyManagement>
1.当自己的项目需要第三方的类库的时候,通过dependency>元素来引入 groupId> 项目或者组织的唯一标识 artifactId> 项目的通用名称 version> 项目的版本 type>打包类型 默认为jar scope>被依赖的Maven控件在classpath中的可访问范围(具体说明在 —> Maven学习 --- 常见变量解释 && 问题解决 )system
2017-08-12 10:24:30 426
原创 Maven学习 --- <parent>
1.由于maven的多模块聚合结构,父模块的modules>记录着所有的子模块,在每一个子模块中也都标明了自己的父模块的配置信息.例如qmxbb-platform为父模块 webapps为子模块父模块的modules>中记录了子模块的artifactId子模块中parent>也记录着父模块的配置信息子模块中中的中记录的是父项目相对于子项目的路径.这样的逻辑是,在构建子项目的时候首先根据相
2017-08-12 10:23:16 15008
原创 Maven学习 --- 常见变量解释 && 问题解决
1.dependency> 元素定义了项目的相关依赖,其中有一些元素,各自的定义为:groupId> : 项目或者组织的唯一标识,并且配置时生成路径也是由此生成的.如 groupId>com.qmbbgroupId> 生成的相对路径为 com/qmbb (生成的路径在本地的 ~./m2/repository 中)artifactId>项目的通用名称 (也会由此生成路
2017-08-12 10:18:21 694
原创 获取真实的客户端IP地址
1.获取真实的客户端IP地址 request.getRemoteAddr() ,这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。/** * 获取客户端的Ip地址 * * @return IP地址 */public static String getIpAddress() { HttpS
2017-08-09 17:55:18 340
原创 支付宝支付Java代码
最近研究了一下支付宝的支付流程,其它的倒没感觉出来,唯一的感受就是这两个官方文档写的真是无法描述,不好好研究还真看不明白.所以将自己理解的支付宝支付流程描述出来.一来将自己学的东西记录下来,另一方面避免做这方面的朋友们浪费过多的时间.支付宝调用流程开发前的准备工作配置应用网关应用网关里面填写的值就是商户后台的异步回调地址.也就是在支付宝付完款之后,由支付宝调用商
2017-08-09 17:36:41 18999 6
原创 永远不要忘记学习
自从离开ACM之后就很少在CSDN上记录学习的过程了.一直拿实习了来搪塞自己,但是这些都不是理由,现在决定重新开始,记录自己学习,工作,生活中的点滴.永远不要忘记学习.
2017-08-08 18:49:36 3395
原创 微信支付JAVA代码
前段时间在搞微信支付,感觉对于刚刚了解微信支付的人来说只是单纯的看微信开发文档有点难受.所以把自己在写微信支付的时候理解的流程写下来,一方面对自己学过的东西做一个记录,另一方面避免后来的人浪费过多的时间.话不多说,现在开始.业务流程时序图这个支付流程是:这前台调用后台的预支付接口预支付接口调用统一下单API(填写统一下单接口的必须参数),
2017-08-08 18:42:48 895
java8中文版API
2018-03-23
idea使用教程2017
2017-09-22
23种设计模式代码实现
2017-09-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人