- 博客(19)
- 收藏
- 关注
原创 解决Map中关于Value的排序方法
代码如下 TreeMap<String, Integer> map = new TreeMap<>(); Random random = new Random(); for (int i = 0; i < 100000; i++) { //创建随机数作为key Integer i1 = random.nextInt(100000) + 100000; String s = i1
2020-10-17 16:25:43
199
原创 rocket项目小结
安装rocket官网上有详细的步骤,不多赘述下载连接:链接: 下载链接.启动步骤连接:链接: 指导连接.java代码生产者@Componentpublic class MqConsumer { @Value("${mq.nameserver.addr}") private String nameserver; @Value("${mq.topicname}") private String topicname; private DefaultMQPu
2020-10-12 22:26:45
237
原创 本地缓存
pom依赖使用的是guava <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>18.0</version> </dependency>server编写public interface Ca
2020-10-09 12:35:41
121
原创 redisConfig常见配置与错误解决方案
常见错误java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to解决方案@Component@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 3600)public class RedisConfig { @Bean public RedisTemplate redisTemplate(RedisConnectionFactory re
2020-10-09 11:50:40
1144
原创 项目小记1:跨域,常用的查看性能linux命令,安装mysql,云端部署springboot项目部署脚本,内嵌tomcat的优化
spring解决跨域请求问题//接受跨域的所有请求,允许接受ajax请求在注解上添加字段@CrossOrigin(allowedHeaders = "*", allowCredentials = "true")如果使用ajax请求需添加xhrFields: {withCredentials: true}, $.ajax({ type: "POST", contentType: "application/x-www-form-ur
2020-10-04 11:38:44
144
原创 spring Di注入
复习记录内容源于黑马,看完点个赞,养成好习惯!!DI注入public class AccountServiceImpl implements IAccountService { //如果是经常变化的数据,并不适用于注入的方式 private String name; private Integer age; private Date birthday; public AccountServiceImpl(String name,Integer age,Dat
2020-09-14 22:19:29
79
原创 github基本操作
github基本操作看文章先点赞,留下好习惯!!大家每一次点赞都是我码文章的动力,奥里给!!!常用词watch:会持续收到该项目的动态fork:辅助某个项目到自己的GitHub仓库中star:点赞clone:将项目下载到本地follow:关注感兴趣的作者,收到他们的动态常用命令in搜索范围xxx关键词in:name或description或readmexxx in:name name中含有xxx关键字的内容同理可得:xxx in:descriptionxxx in:readme
2020-09-12 21:55:51
135
原创 nginx-gateway-微服务集群,解决nginx无法访问getaway(1)当在本机配置域名后
流程gateway yml配置 - id: gulimall_host_route uri: lb://gulimall-product predicates: - Host=**.gulimall.com,gulimall.com当用户发送请求给nginx,nginx会将请求转发给gateway,最后由gateway将请求发送给集群。其中出现了一个坑:当发送请求给nginx时,nginx没有给gateway发送请求信息,导致无法
2020-07-25 22:16:35
2720
1
原创 迭代器设计模式模式,封装类,无视它的组成结构!
迭代器模式看一个具体的需求编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院, 一个学院有多个系。如图:传统的设计方案(类图)传统的方式的问题分析1)将学院看做是学校的子类,系是学院的子类,这样实际上是站在组织大小来进行分层次的2)实际上我们的要求是 :在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系, 因此这种方案,不能很好实现的遍历的操作3)解决方案:=> 迭代器模式迭代器模式基本介绍1)迭代器模式(Iter
2020-07-20 22:25:38
194
原创 模板方法设计模式,决定类的结构,增加代码的复用性!
模板方法模式豆浆制作问题编写制作豆浆的程序,说明如下:1)制作豆浆的流程 选材—>添加配料—>浸泡—>放到豆浆机打碎2)通过添加不同的配料,可以制作出不同口味的豆浆3)选材、浸泡和放到豆浆机打碎这几个步骤对于制作每种口味的豆浆都是一样的4)请使用 模板方法模式 完成 (说明:因为模板方法模式,比较简单,很容易就想到这个方案,因此就直接使用, 不再使用传统的方案来引出模板方法模式 )模板方法模式基本介绍基本介绍1)模板方法模式(Template Method Pattern
2020-07-20 22:08:33
315
原创 享元设计模式模式,使你创建的对象最少,用的最多,直击池的原理!
享元设计模式展示网站项目需求小型的外包项目,给客户 A 做一个产品展示网站,客户 A 的朋友感觉效果不错,也希望做这样的产品展示网站,但是要求都有些不同:1)有客户要求以新闻的形式发布2)有客户人要求以博客的形式发布3)有客户希望以微信公众号的形式发布传统方案解决网站展现项目1)直接复制粘贴一份,然后根据客户不同要求,进行定制修改2)给每个网站租用一个空间3)方案设计示意图传统方案解决网站展现项目-问题分析1)需要的网站结构相似度很高,而且都不是高访问量网站,如果分成多个虚拟空间来处
2020-07-20 21:56:21
134
原创 代理设计模式,在代理类的前后做很多的准备工作!
代理设计模式代理模式的基本介绍1)代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。2)被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象3)代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK 代理、接口代理)和 Cglib 代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴) 。4)代理模式示意图静态代理静态代码模式
2020-07-20 21:38:09
123
原创 适配器设计模式,是两种无法组合的实例的中间件。
适配器设计模式生活实例基本介绍1)适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)2)适配器模式属于结构型模式3)主要分为三类:类适配器模式、对象适配器模式、接口适配器模式工作原理1)适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容2)从用户的角度看不到被适配者,是解耦的3)用户调用适配器转化出来的目标接口方法,适配器再
2020-07-19 14:18:15
305
1
原创 桥接设计模式,有效的减少类爆炸!
桥接模式案例现在对不同手机类型的不同品牌实现操作编程(比如:开机、关机、上网,打电话等),如图:传统的解决方案如果多次添加手机样式,就会出现很多的类创建,这也就是类爆炸!1)扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们增加一个手机品牌,也要在各个手机样式类下增加。2)违反了单一职责原则,当我们增加手机样式时,要同时增加所有品牌的手机,这样增加了代码维护成本.3)解决方案-使用桥接模式桥接模式(Bridge)-基本介绍1)桥接模式(B
2020-07-19 13:38:48
458
原创 装饰者设计模式,举例并且代码演示。
装饰者设计模式星巴克咖啡订单项目:1)咖啡种类/单品咖啡:Espresso(意大利浓咖啡)、ShortBlack、LongBlack(美式咖啡)、Decaf(无因咖啡)2)调料:Milk、Soy(豆浆)、Chocolate3)要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便4)使用 OO 的来计算不同种类咖啡的费用: 客户可以点单品咖啡,也可以单品咖啡+调料组合。咖啡订单问题分析:1)Drink 是一个抽象类,表示饮料2)des 就是对咖啡的描述, 比如咖啡的名字3)co
2020-07-19 13:16:10
221
原创 工厂模式,有些复杂需要多次思考理解
工厂模式简单工厂模式看一个具体的需求看一个披萨的项目:要便于披萨种类的扩展,要便于维护1)披萨的种类很多(比如 GreekPizz、CheesePizz 等)2)披萨的制作有 prepare,bake, cut, box3)完成披萨店订购功能。类图:传统的代码就是写一个抽象类pizza,然后通过继承抽象类实现功能,但是在种类多的时候需要new很多的类并且在选择类的时候会有很多的麻烦。例如:public class OrderPizza { public OrderPizza() {
2020-07-18 22:50:10
188
原创 单例设计模式通过多个例子更形象的解释单例设计模式
设计模式之单例设计模式单例模式的介绍所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实例的方法(静态方法)。单例设计模式八种方式1)饿汉式(静态常量)2)饿汉式(静态代码块)3)懒汉式(线程不安全)4)懒汉式(线程安全,同步方法)5)懒汉式(线程不安全,同步代码块)6)双重检查7)静态内部类8)枚举饿汉式(静态常量)class Singleton { //1. 构造器私有化, 外部能new pri
2020-07-18 21:54:22
117
原创 设计模式的七大原则,初次在博客写文章主要参考了视频的内容!
这里写自定义目录标题设计模式设计模式的目的设计模式的七大原则单一职责原则接口隔离原则依赖倒转原则里氏替换原则开闭原则合成复用原则设计模式今天第一次发博客,也是初次了解设计模式,先培养一下自己写博客的能力!首先先说一下设计模式的七大原则把。设计模式的目的软件的编写过程中,程序员总面临着来自 耦合性、内聚性以及可维护性、可扩展性、重用性、灵活性等多方面的挑战,设计模式会让程序员写代码具有更好的;1)代码重用性 (即:相同功能的代码,不用多次编写)2)可读性 (即:编程规范性, 便于其他程序员的阅读
2020-07-17 22:11:18
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人