自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 常用设计模式

装饰设计模式单例设计模式模板设计模式简单工厂模式工厂方法模式适配器模式

2020-07-30 11:28:01 107

原创 springcloud目录贴

springcloud服务的注册与发现springcloud使用Ribbon作为服务消费者使用Feign作为服务消费者使用Hystrix熔断器路由网关zuul分布式配置中心

2020-04-26 23:13:06 137

原创 Redis基础篇

目录NoSQL概述什么是NoSQL为什么要用nosql主流NoSQLNoSQL优点Redis概述Redis安装和使用Jedis入门Redis数据结构keys的通用操作Redis特性NoSQL概述 什么是NoSQL nosql = not only sql ,意思是“不仅仅是sql”,泛指非关系型数据库。 为什么要用nosql 对...

2020-04-16 17:24:26 185

原创 Activiti目录贴

1-------------------IDEA下搭建Activiti环境2-------------------Activiti之HelloWorld3-------------------RepositoryService4-------------------RuntimeRepository/TaskRepository5-------------------流程变量6...

2019-05-15 22:53:18 226

原创 索引失效的几种场景

like,右模糊 对索引列字段进行函数或类型转换等其他操作;主要包括:在索引列上使用内置函数、隐式类型转换、对列进行加减等数值运算 where语句中包含or时,可能会导致索引失效,除非or的列都加上了索引 联合索引,未遵循最左前缀原则 where语句中索引列使用了负向查询,可能会导致索引失效 ;!= , not in ... 走索引导致多次回表,查询优化器选择不走索引, is null 和 is not null 和查询优化器类似 567点 类似 都看where 后面的字段 不论正向反...

2021-10-19 20:29:50 182

原创 关于多态的一些总结

关于面向对象的三大特征之一的多态,犹记得初学java时的一句话:编译看父类,运行看子类。多态的实现条件:继承、重写、向上转型多态中,方法的调用:向上转型之后,调用的方法父类必须已有,子类没有重写,直接调父类,子类重写,调用子类; 当方法的入参中有继承关系时:该优先级为:this.method(O)、super.method(O)、this.method((super)O)、super.method((super)O)。 ...

2020-12-23 16:07:17 171

原创 Mysql group_concat函数

SELECT t.communityName,t.pointName,GROUP_CONCAT(t.status ORDER BY recordDate),GROUP_CONCAT(t.recordDate ORDER BY recordDate)from (selectrecordDate,communityName,pointName,case attendPointStatuswhen '1' then '全勤'when '2' then '缺勤'else '旷工' end ...

2020-12-23 11:03:25 152

原创 解决springboot项目打包没有主清单

pom文件添加: <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <executions&

2020-08-06 10:18:34 259

原创 适配器设计模式

接口类:package com.klose.适配器模式;public interface Person { void eat(); void cook(); void dance(); void study(); void run();}适配器类:package com.klose.适配器模式;//声明成抽象的因为 不让其他类创建本类对象,因为方法都是空的 创建没意义。public abstract class PersonAdapter

2020-07-30 15:05:57 124

原创 模板设计模式

简言之,父类定义一个算法的骨架,具体的算法实现交给子类实现;父类抽取公共代码,子类个性化定制。

2020-07-30 11:27:03 126

原创 工厂方法模式

1.创建一个工厂的接口package com.klose.工厂方法模式;import com.klose.简单工厂.Animal;public interface AnimalFactory { Animal createAnimal();}2.实现这个接口,实现创建实例的方法package com.klose.工厂方法模式;import com.klose.简单工厂.Animal;import com.klose.简单工厂.Cat;public class Ca

2020-07-30 11:21:39 117

原创 简单工厂模式(静态工厂方法模式)

1.定义一个接口和两个实现类package com.klose.简单工厂;public interface Animal { void eat();}package com.klose.简单工厂;public class Cat implements Animal { @Override public void eat() { System.out.println("猫吃鱼"); }}package com.klose.简单工厂;

2020-07-30 11:06:22 213

原创 单例模式

package com.klose.单例模式;public class Singleton { //私有构造方法,不让其他类创建对象 private Singleton(){} //创建本类对象 private static Singleton s = new Singleton(); //提供对外访问方法 不能创建所以静态 类名点调用;静态方法调用静态变量 public static Singleton getInstance(){ .

2020-07-30 00:28:21 100

原创 装饰者设计模式

说明: B和C实现同一个接口A, C为被装饰类,B为装饰类(可使用C的原有功能,也能对C的某些功能进行升级)。代码实现:接口类:package com.klose.装饰设计模式;public interface Coder { public void code(); public void study();}被装饰类:package com.klose.装饰设计模式;public class Student implements Coder {

2020-07-29 12:14:35 145

原创 jdk动态代理

接口和实现package com.company.proxy;public interface Fruit { void add(); void add2();}package com.company.proxy;public class FruitImpl implements Fruit { @Override public void add() { System.out.println("添加水果"); } @

2020-05-31 17:07:09 209 1

原创 StringUtils中 isNotEmpty 和isNotBlank的区别

isNotEmpty(str)等价于 str != null && str.length > 0isNotBlank(str) 等价于 str != null && str.length > 0 && str.trim().length > 0同理isEmpty 等价于 str == null || str.length == 0isBlank 等价于 str == null || str.length == 0 || st.

2020-05-22 10:59:43 157

原创 nginx常用命令

windows1、启动:C:\server\nginx-1.0.2>start nginx或C:\server\nginx-1.0.2>nginx.exe注:建议使用第一种,第二种会使你的cmd窗口一直处于执行中,不能进行其他命令操作。2、停止:C:\server\nginx-1.0.2>nginx.exe -s stop或C:\server\...

2020-05-07 21:56:23 151

原创 synchronize关键词、对象头解析

java对象布局,由什么组成?java对象的实例数据(成员变量大小不固定) 对象头(固定) 数据对其(填充数据)虚拟机jvm中能识别的对象布局大小必须为8的倍数(单位:字节byte)打印对象布局引入依赖: <!--openjdk--> <dependency> <groupId>org.open...

2020-05-05 13:40:14 260

原创 Mysql索引底层原理分析

简介Mysql中Innodb引擎的索引的数据类型为Hash或者B+树,默认为B+树。叶子节点由双向指针连接页页是一种逻辑单位,一页可存储4kb数据。使用页——局部性原理局部性通常有两种形式:时间局部性(temporal locality)时间局部性指的是:被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。空间局部性(spatial locality)...

2020-05-04 22:33:10 230 1

原创 mysql排序的几种方式

SELECT * from t_student ORDER BY age; SELECT * from t_student ORDER BY age,status; SELECT * from t_student ORDER BY FIELD(`status`,2,1,3); 。。。。。。 ...

2020-04-30 14:22:54 208

原创 sql中or和and混合使用

前言今天,线上环境出了个问题,导致被叼了一顿,特此纪念一下。导致bug的代码片段:原因是红色框框里用了or没有加(),导致查询出来的数据对不上,所有条件加起来的数量不等于总数。原因可见:此篇博客...

2020-04-28 17:42:39 1338

原创 springboot项目读取配置文件的优先级

1.初始化一个springboot项目配置文件如下:server: port: 8081a: name: jar里的a_nameb: name: jar里的b_namec: name: jar里的c_name测试类:@RestControllerpublic class TestController { @Value("${a.name}"...

2020-04-27 18:11:44 366

原创 分布式配置中心

简介所谓的分布式配置中心,即将项目的配置文件交由git管理,然后项目能够读取git上的配置文件。准备工作先上传三个配置文件到git,怎么上传文件到git可参考这里搭建配置中心server在原有基础上新建模块pom文件:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http:...

2020-04-26 22:19:16 155

原创 路由网关zuul

简介Zuul的主要功能是路由转发和过滤器。这个时候,我们需要统一的入口,接口地址全部由该入口进入。比如用/api同一接口,/api/order发给order服务器,/api/product发给product服务器。搭建zuul网关服务器新建一个module模块pom文件:<?xml version="1.0" encoding="UTF-8"?><pr...

2020-04-26 18:17:30 191

原创 使用Hystrix熔断器

在ribbon中使用断路器在第二节原有基础上添加依赖: <!-- 熔断器依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-start...

2020-04-26 17:11:22 191

原创 使用Feign作为服务消费者

简介 Ribbon是一个基于Http和TCP的负载均衡工具,Feign(音:菲恩)是一个声明式的伪Http客户端,它比Ribbon更加的优雅。Feign使用的是接口的方式。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。搭建环境 在上一节的基础上新建一个module模块;pom文件:<?xml version="1...

2020-04-26 16:32:46 219

原创 springcloud使用Ribbon作为服务消费者

1.简介Ribbon是一个基于Http和TCP的负载均衡工具。2.环境搭建在前一节的基础上启动18011注册中心,和18012、18013的两个服务在eureka-client写一个接口,便于测试3.搭建一个服务消费者右击项目根目录,New--Module--选择左侧的Maven,点击next--输入新模块的名字custom-ribbon,pom文件:&lt...

2020-04-25 21:53:32 153

原创 springcloud服务的注册与发现

一、创建服务注册中心1.首先创建一个maven主工程,然后创建两个module工程,一个作为Eureka Server,一个作为Eureka Client。右键工程->创建model-> 选择spring initialir 如下图:...

2020-04-25 16:12:26 139

原创 Java 8 Stream

简介 Java 8 API添加了一个新的抽象称为流Stream,可以让你以一种声明的方式处理数据。 Stream使用一种类似用SQL语句从数据库里查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象。 这种风格将要处理的元素看作是一种流,流在管道中传输,并可以在管道的节点上进行处理,比如筛选,排序,聚合等。 举一个栗子 public static void main...

2020-04-21 17:18:04 224

原创 多线程小结

多个线程共享实例变量(成员变量),会引发线程安全问题。 在使用synchronize或者reentrantLock时,读取值和修改值应该在同一代码块中; 某些情况下,可使用volatile修饰变量强制更新内存和私有线程中的变量,使得读取这个操作不用加锁。 synchronize是jvm层面的,它的加锁和释放锁由jvm实现;reentrantLock是jdk代码层面的,使用时需要手动加锁、释放...

2020-04-21 01:03:14 135

原创 上传代码到github

第一步:建立git仓库cd到你的本地项目根目录下,执行git命令git init第二步:将项目的所有文件添加到仓库中git add .如果想添加某个特定的文件,只需把.换成特定的文件名即可第三步:将add的文件commit到仓库git commit -m "注释语句"第四步:在github个人账户上建立一个仓库第五步:将本地的仓库关联到github上git remot...

2020-04-20 13:54:01 199

原创 使用Redis

使用原生Jedisspringboot中使用Jedisspringboot中使用Redistemplatespringboot中使用Redisson

2020-04-17 13:04:54 247 1

原创 case when then 结合 group by的使用

1.准备数据ddl:CREATE TABLE `t_staff` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `department` varchar(255) COLLATE utf8_unicode_ci DEFAULT ...

2020-04-14 09:13:08 2500

原创 sql 实现 数据库行转列

1.新建一张表CREATE TABLE `t_student` ( `name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `subject` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL, `score` int(11) DEFAULT NULL) ENGINE=...

2019-11-27 17:23:23 168 1

原创 linux安装jdk

1、查看当前Linux系统是否已经安装java 输入 rpm -qa | grep java2、卸载两个openJDK 输入rpm -e --nodeps 要卸载的软件3、上传jdk到linux4、安装jdk运行需要的插件yum install glibc.i686(选做)5、解压jdk到/usr/local下 tar –xvf jdk-7u71-l...

2019-11-26 15:09:26 72

原创 Linux命令汇总

1.目录切换命令cd usr 切换到该目录usr目录下 cd ../ 切换到上一级目录 cd / 切换到系统根目录 cd ~ 切换到用户主目录 cd - 切换到上一个所在目录 2.目录的操作命令增加目录操作(增)命令:mkdir 目录名称示例:在根目录 / 下 mkdir test,就会在根目录 / 下产生一个test问...

2019-11-26 15:01:48 128

原创 Spring 全局异常处理器

什么是全局异常处理器?就是把错误异常统一处理的方法。应用场景:1、如果参数校验不通过会抛异常,而且无法使用try-catch语句直接捕获,这时可以使用全局异常处理器来捕捉该异常。2、当你自定义了一个异常类,可以在全局异常处理器中来捕捉该异常。(当然也可以直接在抛出异常处直接捕获,但是这样需要在每一个抛出的地方都写一次捕获代码,看起来不够美观且复用性不强,其他异常同理)。代码:...

2019-11-26 11:26:19 199

原创 Spring注解之 @Conditional 注解

@Conditional注解通常配合@Bean和@Configuration使用,在配置时用于判断spring容器是否注入某个实体类。@Conditional的定义:从代码中可以看到此注解需要传入class类型的数组,并且这些class都继承Condition类点开Condition源码,可以看到:Condition接口中定义了一个返回值为布尔值的抽象方法,因此可以联想...

2019-11-21 13:54:29 214

原创 排序并计算每个学生的名次

private static void testSort() { Student 张三 = new Student("张三", 90, null); Student 李四 = new Student("李四", 90, null); Student 王五 = new Student("王五", 90, null); Stude...

2019-10-16 00:34:44 546 2

原创 Springboot 之整合多个数据源

1.用idea初始化一个springboot项目包结构如下:2.具体配置如下:1.application.yml:#DataSourcespring: datasource: test1: jdbcUrl: jdbc:mysql://localhost:3306/springbootstudy username: root p...

2019-06-02 18:43:30 276 1

空空如也

空空如也

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

TA关注的人

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