自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TreeMap对value的排序

*我们都知道TreeMap是排序的,但是它是对key进行排序的,要对value进行排序,可以用下面这种方法*大致的思路是把TreeMap的EntrySet转换成list,然后使用Collections.sor排序。代码:Map<String,Integer> result=new TreeMap<String,Integer>();result.put(“aaaa”...

2019-04-17 09:34:22 1443

原创 Springboot 配置 MybatisPlus 多数据源使用报错Invalid bound statement (not found):

// 创建Mybatis的连接会话工厂实例 @Primary @Bean(name = "adminSqlSessionFactory") public SqlSessionFactory primarySqlSessionFactory(@Qualifier("adminDataSource") DataSource adminDataSource) throws Exception { final MybatisSqlSessionFactoryBean se..

2021-01-09 20:31:04 1187

原创 建造者设计模式

有一个需求,要配置一台电脑,电脑属性包括cpu,gpu,memory,hd。传统的代码如下:Computer类public class Computer { private String cpu; private String gpu; private String memory; private String hd; public String getCpu() { return cpu; } public void set

2020-05-20 18:24:22 220

原创 Java实现对象的深拷贝

1.浅拷贝的介绍1)对于数据类型是基本数据类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象。2)对于数据类型是引用数据类型的成员变量,比如说成员变量是某个数组、某个类的对象等,那么浅拷贝会进行引用传递,也就是只是将该成员变量的引用值(内存地址)复制一份给新的对象。因为实际上两个对象的该成员变量都指向同一个实例。在这种情况下,在一个对象中修改该成员变量会影响到另一个对象的该成员变量值3)浅拷贝是使用默认的 clone()方法来实现我们来看下面这个例子新建一个人类,里面有基

2020-05-20 10:12:59 1421

原创 抽象工厂设计模式

之前已经介绍了工厂方法设计模式的实现,以及优缺点,不了解的朋友可以看一下这篇文章。工厂方法设计模式介绍为了解决工厂方法模式会造成类膨胀的缺点,前辈们总结了抽象工厂设计模式,继续前面的例子,代码使用抽象工厂设计模式改造成下面这样。public class AbstractFactory { public static void main(String[] args) { Factory factory=new KFCFactory(); Drink drink=f

2020-05-19 17:08:38 263

原创 工厂方法设计模式

之前已经介绍了简单工厂设计模式的实现,知道了简单工厂模式的缺点。还没有了解的可以看一下这篇博客。简单工厂设计模式介绍为了解决简单工厂模式的缺点,前辈又设计了一套工厂方法模式。继续之前的例子,把代码改造成如下这样。public class FactoryDemo { public static void main(String[] args) { FoodFactory foodFactory=new HambergerFactory(); Food food

2020-05-19 10:56:23 226

原创 简单工厂模式

定义简单工厂模式属于创建型模式又叫做静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。直接将简单工厂模式的使用大家可能有点蒙蔽,以及为什么要用简单工厂模式,我不要行不行?先来一段代码public class SingleFactoryDemo { public static void main(String[] args) { Food food=ne

2020-05-18 17:58:17 164

原创 单例模式的八种实现

所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实例的方法(静态方法)。package cn.chmcyz.singleton;/** * @author 谌涣谋 * @date 2020/5/17 - 20:05 * 单例模式 */public class SingletonDemo { public static void main(String[] args) { Singleton1

2020-05-17 22:27:39 121

原创 Java链表实现栈

package cn.chmcyz.linkedstack;/** * @author 谌涣谋 * @date 2020/5/17 - 0:08 */public class LinkedStackDemo { public static void main(String[] args) { LinkedStack stack=new LinkedStack(); stack.push(new Node(1)); stack.push(ne

2020-05-17 10:28:42 137

原创 Java数组实现栈

package cn.chmcyz.arraystack;/** * @author 谌涣谋 * @date 2020/5/16 - 20:32 */public class ArrayStackDemo { public static void main(String[] args) { ArrayStack stack=new ArrayStack(5); stack.push(1); stack.push(2); st

2020-05-16 23:22:10 155

原创 设计模式七大原则之开放封闭原则

基本介绍1)开闭原则(Open Closed Principle)是编程中最基础、最重要的设计原则2)一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。3)当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。4)编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。先来一段代码,大家看看有什么问题package cn.chmcyz.openclose;/** * @autho..

2020-05-16 17:38:52 402

原创 单链表操作之反转单链表

/** * 反转链表思路 * 1.定义一个新链表 * 2.遍历链表,每次将当前结点插入新链表的头部,也就是头插法 */ public void reverse(HeroNode head){ HeroNode temp=head.getNext(); if(temp==null || temp.getNext()==null){ System.out.println(666); .

2020-05-15 19:30:37 113

原创 设计模式七大原则之依赖倒置原则

依赖倒转原则(Dependence Inversion Principle)是指:1)高层模块不应该依赖低层模块,二者都应该依赖其抽象2)抽象不应该依赖细节,细节应该依赖抽象3)依赖倒转(倒置)的中心思想是面向接口编程4)依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在 java 中,抽象指的是接口或抽象类,细节就是具体的实现类使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实

2020-05-14 20:13:57 178

原创 单链表Java实现

package cn.chmcyz.linkedlist;/** * @author 谌涣谋 * @date 2020/5/14 - 17:01 */public class SingleLinkedListDemo { public static void main(String[] args) { SingleLinkedList list=new SingleLinkedList(); HeroNode node1=new HeroNode(1,"

2020-05-14 19:29:59 177

原创 设计模式七大原则之接口隔离原则

基本介绍1)客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上2)先看一张图:3)类 A 通过接口 Interface1 依赖类 B,类 C 通过接口 Interface1 依赖类 D,如果接口 Interface1 对于类 A 和类 C来说不是最小接口,那么类 B 和类 D 必须去实现他们不需要的方法。4)按隔离原则应当这样处理:将接口 Interface1 拆分为独立的几个接口(这里我们拆分成 3 个接口),类 A 和类 C 分别与他们需要的接口建立依赖关系。.

2020-05-13 23:39:28 105

原创 设计模式的七大原则之单一职责原则

定义单一职责原则就是指一个类只实现某一个特定的功能,职能是单一的好处可以降低类的复杂度。提高类的可读性,可维护性。降低变更的风险。以交通工具例子package cn.chmcyz.singlereposibility;/** * @author 谌涣谋 * @date 2020/5/12 - 19:15 */public class SingleResposibility1 { public static void main(String[] args) { .

2020-05-12 19:34:34 148

原创 Java用数组实现队列和循环队列

队列定义队列是一种先进先出的数据结结构。队列的使用场景银行排队挂号等。Java用数组实现package cn.chmcyz.queue;package cn.chmcyz.queue;/** * @author 谌涣谋 * @date 2020/5/12 - 17:00 */public class ArrayQueueDemo { public static void main(String[] args) { ArrayQueue queue=new.

2020-05-12 18:58:38 238

原创 稀疏数组

package cn.chmcyz.sparsearray;/** * @author 谌涣谋 * @date 2020/5/11 - 19:44 */public class TestSparseArray { /** * 原始数组 * [ * [0,0,0,0,0,0,0,0,0,1], * [0,0,0,0,0,0,0,0,0,0], * [0,0,0,0,0,0,0,0,0,0], * [0,0,0,0,8,0,

2020-05-11 20:27:45 121

原创 Spring Boot整合RabbitMQ

消息发送端配置导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>yml配置server: tomcat: max-threads: 10 port: 81spring:

2020-05-10 16:55:18 174

原创 Mybatis Plus代码生成器代码

引入依赖 <!-- velocity 模板引擎, Mybatis Plus 代码生成器需要 --> <dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity-engine-cor...

2020-04-14 22:22:15 217

原创 使用阿里巴巴的EasyExcel操作Excel

引入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> </dependency> <dependency&gt...

2020-04-14 22:18:35 935

原创 雪花算法生成全局唯一ID

传统的生成ID的方法有以下几个:Java的UUIDmysql的自增主键利用Redis的INCR以上方法都存在一定的问题。UUID生成的是以下一串36位的16进制数6d62ff8c-66d3-43e1-8009-44fec60d3b30但是用UUID当主键的话存在一定问题,首先,它是无序的,因为mysql主键都会自动生成唯一索引,如果主键无序的话,插入一条数据维护索引的代价会很...

2020-04-08 22:05:57 19282

原创 OpenFeign在传递参数为对象类型是为空

今天在使用OpenFeign时发现当传递参数为对象类型时,接受到的参数为null。解决的方法很简单,在参数前面加上@RequestBody即可@PostMapping("/account/update") public CommonResult update(@RequestBody TOrder order){ System.err.println("进来了"); System.e...

2020-04-08 14:19:07 4453 2

原创 SpringCloud 2.0配置豪猪后 http://127.0.0.1:8001/actuator/hystrix.stream 404不存在

在服务方的yml中加入以下配置management: endpoints: web: exposure: include: "*"

2020-03-29 20:21:22 390

原创 Springcloud hystrix可视化监控(豪猪)配置

dashboard工程配置加入依赖 <dependencies> <dependency> <groupId>cn.chmcyz.springcloud</groupId> <artifactId>microservice-api</artifactId> <version>0...

2020-03-29 20:19:09 256

原创 Springcloud 服务熔断和服务降级配置

服务熔断概念:微服务中,熔断机制是应对雪崩效应的一种微服务链路保护机制。当扇出链路的某个微服务不可用或者响应时间太长时,会进行服务降级,进而熔断该节点微服务的调用,快速返回“错误”的响应信息。当检测到该节点微服务调用响应正常后恢复调用链路。服务熔断的作用类似于我们家用的保险丝,当某服务出现不可用或响应超时的情况时,为了防止整个系统出现雪崩,暂时停止对该服务的调用。服务熔断是在服务端进行配...

2020-03-29 15:57:08 1347

原创 Java POI的封装

加入以下依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>4.0.1</version> </dependency> <dependen...

2020-03-28 22:07:04 303

原创 Springcloud 自定义Ribbon的负载均衡算法

Ribbon默认的负载均衡算法为轮循算法,还提供了随机和重试等负载均衡算法但如果要自定义Ribbon的负载均衡算法呢,例如,自定义一个负载均衡算法为连续五个请求请求同一个微服务,一次轮循下去。在启动类上添加注解@RibbonClient(name="MICROSERVICECLOUD-DEPT",configuration=MyRule.class)注意,十分重要,MyRule类不能...

2020-03-28 16:06:32 197

原创 thymeleafth:onclick传参报错Only variable expressions returning numbers or booleans are allowed in this

thymeleaf th:onclick报错org.thymeleaf.exceptions.TemplateProcessingException: Only variable expressions returning numbers or booleans are allowed in this context, any other datatypes are not trusted in...

2020-03-20 21:14:19 2589

原创 消息中间件RabbitMQ简单队列及工作队列

一.下载安装rabbitMQ详情见此博客二.加入rabbitmq的依赖`<dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.6.0</versio...

2019-11-07 15:21:16 224

原创 SpringBoot整合quartz

1.加入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency>2.Job类import org.qu...

2019-11-07 11:34:19 75

原创 SpringBoot Mybatis配置懒加载后 返回json时报错No serializer found for class org.apache.ibatis.executor.loader

今天在写springboot项目时,用jackson返回json数据时后台突然报错,No serializer found for class org.apache.ibatis.executor.loader.javassist.JavassistProxyFactory$Enha。而以前能正常返回,这时候突然想到今天配置一对多关联的懒加载,我意识到可能报错与其有关。果不其然,解决报错的方法...

2019-08-31 15:02:51 2655 1

原创 Java用双重检验锁的单例模式创建jedis连接池

maven需要的依赖<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency><depen...

2019-07-30 17:10:23 291

原创 用java对mongodb进行基础的CRUD操作

首先,肯定是需要jar包了maven工程,在pow,xml文件中加入以下依赖` <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.0.4&lt...

2019-07-30 16:07:38 210

原创 Java自己实现的一个简单的tomcat通过XML配置读取并返回相应Servlet对象

其基础是要了解http协议请求的报文格式和响应的报文格式,这里就不做详细介绍了。首先是XML工具类``public class XMLUtil {static Stack stack=new Stack<>();private String result=null;private String servletClass=null;public void addServl...

2019-07-30 11:33:22 268

原创 Java实现多线程下的下载断点续传

基本思想是停止时以Map的形式存入文件时,等到再次下载时从文件中读取继续下载1.首先写一个文件工具类,用来实现文件和Map集合的相互转换import java.io.File;import java.util.Map;import java.io.*;public class FileUtil { public static void mapToFile(String filePa...

2019-07-30 11:15:50 254

原创 NoSQL及CAP总结

定义:NoSQL见名思意,意思就是Not only SQL,它泛指非关系型数据库。NoSQL数据库的四大分类KV键值:Redis,Memchache,tair,BerkeleyDB文档型数据库(BSon格式居多):MongoDB,CouchDB列存储数据库:HBase图关系数据库 (放的不是图形,是关系,比如朋友圈,广告推送):Neo4JCAP1.C(Consistency):强一...

2019-06-07 15:07:21 443

转载 内部类讲解

匿名内部类详解

2019-04-17 09:53:24 98

空空如也

空空如也

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

TA关注的人

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