自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (4)
  • 收藏
  • 关注

原创 SpringCloud使用spring.factories扫描公共模块的类

在SpringCloud项目中,为了方便开发,将redis从各个服务提取,搞了一个common-redis。因为springboot在启动时只会扫描自己路径下的配置文件,所以公共模块下的配置和实现时不会扫描的。所以我们要通过手动的方式使springboot在启动的时候,扫描到我们的公共模块下的配置。第一种。在springboot的启动类中使用@Import第二种,在公共模块中自定义spring.factories实现org.springframework.boot.autoconfigure.E

2021-08-25 15:48:34 913

原创 expected single matching bean but found 2

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSourceInitializer': Invocation of init method failed; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of t

2021-07-12 10:32:34 375

原创 控制bean是否启动,用于解决某些bean在某些环境无法启动的问题

背景:身为阿里小外包,其实阿里集团的技术栈和我想象的不一样,虽然spring-cloud-alibaba现在用到人挺多,但是阿里根本不是这一套,而且在阿里学框架没前途,学的是业务,是原理。因为是外包进了国际化业务的BU所以能学到的东西好多。说到国际化,就要了解淘系商城的跨单元部署,在跨单元部署的是会有好多服务只会部署在个别的单元,所以一份代码我们要动态的控制某些服务是否需要注入到ioc容器中。虽然实现办法挺多的,这次我们选择了@Conditional注解。前言:@Conditional是Spring

2021-06-08 09:43:33 353

原创 Redis数据类型-bitmap学习

1、BitMap是什么就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身。我们知道8个bit可以组成一个Byte,所以bitmap本身会极大的节省储存空间。2、Redis中的BitMapRedis从2.2.0版本开始新增了setbit,getbit,bitcount等几个bitmap相关命令。虽然是新命令,但是并没有新增新的数据类型,因为setbit等命令只不过是在set上的扩展。3、setbit命令介绍指令SETBIT key offset value设置或者清空k.

2021-03-15 15:18:35 151

原创 SpringCloud Alibaba Seata分布式事务

nacos1.3 + seata1.4导入依赖 <!-- seata 相关依赖 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-seata</artifactId> <exclu

2021-02-24 11:34:07 106

原创 SpringCloud Alibaba整合SpringCloud OpenFeign报错

在学习SpringCloud Alibaba整合SpringCloud 时遇到了一个OpenFeign调用错误Caused by: java.lang.IllegalStateException: No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer? at org.springframework.cloud.openfeign.FeignClien

2021-02-23 11:32:30 1211 2

转载 kafka是如何保证消息不被重复消费的

一、kafka自带的消费机制kafka有个offset的概念,当每个消息被写进去后,都有一个offset,代表他的序号,然后consumer消费该数据之后,隔一段时间,会把自己消费过的消息的offset提交一下,代表我已经消费过了。下次我要是重启,就会继续从上次消费到的offset来继续消费。但是当我们直接kill进程了,再重启。这会导致consumer有些消息处理了,但是没来得及提交offset。等重启之后,少数消息就会再次消费一次。其他MQ也会有这种重复消费的问题,那么针对这种问题,我们需要从业务

2021-02-21 09:07:44 977

原创 SpringCould2020整合Nacos-Bootstrap配置不生效

因为公司现在换成了nacos,所以自己写了demo学习一下。结果第一步就走不下去。在使用nacos-config读取nacos配置时。发现bootstrap.yml一直不生效。按照网上的解决方法引入依赖。<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-context</artifactId></depe

2021-01-21 10:57:32 1295 8

原创 maven依赖树拉取

公司注册中心准备从Eureka切到Nacos,因为有些项目代码没有更新。所有注册失败。又不知道到底是那个项目还有Eureka依赖。所以用该命令查询依赖树。简单直观有奇效。mvn dependency:treemvn dependency:tree -->a...

2021-01-18 16:30:53 303

原创 Elasticsearch使用中遇到的问题-Nested

实战Elasticsearch,因为之前只写过简单demo,在项目实战中遇到了不少问题。以前只知道Elasticsearch是支持数组对象的。在本次开发中也用到了。并且经过了测试,预发,到了生产环境。数据量上来之后,发现当我使用数组对象单字段查询时并不会出现问题。当多个字段去匹配时,结果却出现了不满足条件的数据。通过万能的搜索引擎了解到。当我们没有定义数组对象的类型时。因为elasticsearch使用的库没有内部对象的概念,因此内部对象被扁平化为一个简单的字段名称和值列表。要解决这个问题只需要将数

2020-12-25 14:37:17 632 1

原创 mysql日期 函数

-- 获取当前日期select curdate();         -- 获取当月最后一天。              select last_day(curdate());              -- 获取本月第一天     select DATE_ADD(curdate(

2020-12-16 21:33:58 128

原创 sql匹配正则中文

今天来到公司。发现一堆工单、调查发现全部是数据迁移导致的数据问题。其中一个表单表里的数据 name和id搞反。导致出现26W的错误数据。直接匹配正则,将储存id为中文的全部查出,然后删掉。select id from 表名 where HEX(字段) REGEXP '^(..)*(E[4-9])'...

2020-11-23 16:22:13 5240

原创 Feign之间调用传递token问题

Feign支持请求拦截器,在发送请求前,可以对发送的模板进行操作,例如设置请求头等属性,自定请求拦截器需要实现 feign.RequestInterceptor 接口,该接口的方法 apply 有参数 template ,该参数类型为 RequestTemplate,我们可以根据实际情况对请求信息进行调整,示例如下: 创建自定义请求拦截器,在发送请求前增加了一个请求头信息,进行身份校验。 具体代码参考如下:@Configurationpublic class FeignTokenInt..

2020-11-13 13:54:53 877

原创 java.net.UnknownHostException异常-碎碎念念

记录一个之前没碰到过的异常。早上来公司。告知今天所有的老系统发送短信失败。因为不是自己的模块所以先看代码。发现这个类最近的提交代码的日期是2019年的。所有排除代码问题。然后就在考虑是配置文件的问题了。把所有的配置写死继续调试。还是没有问题。所有答案只有一个。线上环境有问题。找运维要来了日志。然后排查异常发现java.net.UnknownHostException: sms.zjzwfw.gov.cn at java.net.AbstractPlainSocketImpl.connect(Abst

2020-10-12 13:52:57 2150

原创 SpringCould学习笔记之服务网关 Gateway

什么是服务网关在微服务架构中,整个系统是由许多微服务组成,每个微服务负责一块独立的业务,当外部系统需要调用微服务架构中的某些功能时,我们如何对外提供接口。微服务架构中,服务实例地址经常会发生变化,所以我们无法直接将服务地址外放出来。如果每一个微服务都直接外放接口,会导致一系列的其它问题,比如调用链过于复杂、涉及到账户、权限时不能统一处理等。另外基于高内聚低耦合的设计准则来讲,我们也应该将内部系统和外部系统做切割。于是在这样的场景下,就需要有一个独立的组件来处理外部的请求,这个组件就是服务网关。服务网关

2020-09-18 19:07:11 310

原创 SpringCould学习笔记之声明式服务调用 Feign

1、Feign简介Feign是一个声明式的Web服务客户端,使用Feign可使得Web服务客户端的写入更加方便。它具有可插拔注释支持,包括Feign注解和JAX-RS注解、Feign还支持可插拔编码器和解码器、Spring Cloud增加了对Spring MVC注释的支持,并HttpMessageConverters在Spring Web中使用了默认使用的相同方式。Spring Cloud集成了Ribbon和Eureka,在使用Feign时提供负载平衡的http客户端。简单来说。feign就是用于

2020-09-14 16:06:45 136

原创 通过freemarker模版拼装参数导出PDf

上周产品给了需求要求根据参数动态导出excel。结果使用了已有的大多数开源插件并不能满足需求。退而求次,导出pdf文件,让用户通过wps转为excel。因为以前没有做过这种东西。在github搜到了基础的方法。在其基础上进行封解决了遗留问题。原实现方法:SpringBoot + Freemarker +itext 渲染 html 导出 PDF上面的代码已经完美的实现了通过 freemarker iText 渲染 html 模板导出 PDF。但是项目存在微小的瑕疵。经过一下午的研究。完美解

2020-08-26 19:04:52 274

原创 ResourceUtils.getFile 打包jar 导致cannot be resolved to absolute file 问题

原代码File file = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX + relativePath)修改后InputStream stream = ResourceFileUtil.class.getClassLoader().getResourceAsStream(relativePath);File file = new File(relativePath);FileUtils.copyInputStreamT

2020-08-26 09:22:07 801

原创 java文件下载时。文件名乱码解决

String formName = URLEncoder.encode("文件名.pdf", "UTF-8"); response.setHeader("Content-Disposition", "attachment;filename*=utf-8'zh_cn'" + formName );

2020-08-25 10:23:59 460

原创 分布式调度-XXL-JOB使用

Elastic-Job监控分析1. 需求痛点Promblem1:Job(定时任务) 到点未触发(可能服务掉线)。解决思路:能实时监测到任务的在线状态,以及追踪到离线事件。并且针对离线问题自动或手动触发补偿。Problem2:Job(定时任务) 触发时发生异常执行失败。解决思路:形成执行成功和失败的执行日志, 执行失败异常报警通知相关开发排查处理修复。2. 选型分析备选了3款分布式调度框架,分别为Elastic-Job、Saturn、PowerJob。主要从开发上手

2020-08-10 16:26:27 1051

原创 linux下根据端口号找到并杀死进程

1. 查找占用的程序。端口号:netstat -apn | grep 80812. 杀掉对应的进程,彻底杀死进程。端口号:kill -9 605

2020-08-05 13:48:46 763

原创 yml自定义配置不生效解决办法

今天遇到了一个问题。yml配置自定义属性不生效。然后使用搜索引擎也不能定位问题。最后发现yml自定义属性从第三级的不支持驼峰命名方式。应该使用-分割。

2020-07-28 15:39:06 2969 1

原创 Navicat12使用mysql数据库,存储Blob字段,显示内容中文乱码

Navicat12使用mysql数据库,存储Blob字段,显示内容中文乱码用一下语句可以查询到正确内容:select cast(字段名 as char) from 表名

2020-07-13 08:59:48 3824 2

原创 sh脚本执行失败

-bash: ./stop.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录就是因为在win环境下打包。有/r和/n存在需要使用命令 sed -i 's/\r$//' XXXX.sh

2020-06-03 00:13:22 1278

原创 HashMap与ConcurrentHashMap

HashMap HashMap底层数据结构 JDK7:数组+链表JDK8:数组+链表+红黑树(看过源码的同学应该知道JDK8中即使用了单向链表,也使用了双向链表,双向链表主要是为了链表操作方便,应该在插入,扩容,链表转红黑树,红黑树转链表的过程中都要操作链表)JDK8中的HashMap为什么要使用红黑树? 当元素个数小于一个阈值时,链表整体的插入查询效率要高于红黑树,当元素个数大于此阈值时,链表整体的插入查询效率要低于红黑树。此阈值在HashMap中为8JDK8中的HashM

2020-05-15 07:06:24 169

原创 集合各实现类的底层实现原理

ArrayList实现原理要点概括参考文献:http://zhangshixi.iteye.com/blog/674856l https://www.cnblogs.com/leesf456/p/5308358.htmlArrayList是List接口的可变数组非同步实现,并允许包括null在内的所有元素。 底层使用数组实现 该集合是可变长度数组,数组扩容时,会将老数组中的元素重新拷贝一份到新的数组中,每次数组容量增长大约是其容量的1.5倍,这种操作的代价很高。 采用了Fail-Fa

2020-05-14 18:36:01 192

原创 分布式事务的实现-rocketMQ实现

1、分布式事务(1)---2PC和3PC原理2、分布式事务(2)---TCC原理3、分布式事务(3)---RocketMQ实现分布式事务原理

2020-05-14 16:00:53 224

原创 上传文件,结果服务器里是目录

用sftp协议上传文件到服务器上,上传上去的就是目录了代码都是一样的账号权限问题,默认使用的超级管理员权限,我代码里面是普通管理员因为不能生成文件,所以默认创建了目录

2020-05-13 17:17:04 209

原创 docker(部署常见应用):docker部署rocketmq4.4

一、安装 Namesrver# 下载镜像docker pull rocketmqinc/rocketmq:4.4.0# 创建mq文件夹mkdir /usr/local/mq# 启动容器docker run -d -p 9876:9876 -v {RmHome}/data/namesrv/logs:/root/logs -v {RmHome}/data/namesrv...

2020-05-06 11:08:19 1117 1

原创 spring‐data‐elasticsearchPOJO中的注解

前端交互我们仍可以使用REST风格结合SpringMVC后端数据库,我们可以使用spring-data-elasticsearchPOM <dependency> <groupId>org.springframework.boot</groupId> <artifactId>...

2020-04-22 16:11:03 539

转载 java面试题-分布式

Zookeeper 是什么?zk是一个开源的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交反馈进行下一步操作,最终将简单易用的接口和性能高效1、文档的系统提供给用户分布式应用程序可以基于zk实现数据发布/订阅,负载均衡、Master选举、分布式锁、分布式队列等功能特性 顺序一致性(有序性) 从同一个客户端发起的事务请求,最终将会严格地按照其发起顺序被...

2020-04-20 15:31:17 730

原创 docker常用命令

查看运行中的所有容器docker ps -a删除容器docker rm 容器名启动容器docker start 容器名停止容器docker stop 容器名重启容器docker restart 容器名查看镜像最新版本docker search 镜像名下载镜像docker pull 镜像名删除镜像doc...

2020-04-02 13:48:10 63

原创 取出两个数组的不同元素

//取出两个数组的不同元素function getArrDifference(arr1, arr2) { return arr1.concat(arr2).filter(function(v, i, arr) { return arr.indexOf(v) === arr.lastIndexOf(v); });}

2020-03-09 17:05:05 1345

原创 table转json

1.第一种方法直接用tabletojson.js链接:http://lightswitch05.github.io/table-to-json/2.<table class="table" id="playlistTable"> <thead> <tr> <th> 名称 </th> &lt...

2020-03-09 13:48:24 792

原创 mysql5.6导入5.5时间格式报错 check the manual that corresponds to your MySQL server version for the right syn

timestamp(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0) COMMENT修改为timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT

2020-01-13 16:17:34 488

转载 docker(部署常见应用):docker部署redis

docker部署redis:4.0# 下载镜像docker pull redis:4.0# 查看下载镜像docker images|grep redis# 启动镜像docker run --name my-redis -p 16379:6379 -v /usr/local/workspace/redis/data:/data -d redis:4.0 redis-ser...

2020-01-13 14:57:36 211

原创 centos7 zookeeper3.5.5 安装

二、下载地址http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.5/apache-zookeeper-3.5.5-bin.tar.gz三、安装1.解压sudo tar -zxf apache-zookeeper-3.5.5-bin.tar.gz -C /usr/local/2.修改权限sudo chown -...

2019-12-12 15:47:33 175

转载 SpringBoot 集成MongoDB

一、MongoDB 简介MongoDB 如今是最流行的 NoSQL 数据库,被广泛应用于各行各业中,很多创业公司数据库选型就直接使用了 MongoDB,但对于大部分公司,使用 MongoDB 的场景是做大规模数据查询和离线分析。MongoDB 一经推出就受到了广大社区的热爱,可以说是对程序员最友好的一种数据库,下面我们来了解一下它的特性。MongoDB(Humongous,庞大)是可...

2019-12-11 15:52:37 133

原创 Java8 新特性

1.在java1.8版本以前,Interface接口中所有的方法都是抽象方法和常量,而java1.8我们就可以定义带有方法体的方法。这也使我们在定义接口的时候就有更高的灵活性,一些不需要重写的方法我们我们就直接在接口中定义好了就可以了!在定义接口的时候我们使用default和static关键字修饰.接口也可以多重继承2.重复注解:Java8前版本的Java禁止对同样的注解类型声...

2019-10-17 23:01:58 85

原创 liunx安装mysql8

今天发生了一件非常悲催的事 服务器被攻击 数据库全毁 重新安装系统 准备用宝塔 但是我的服务器内存太小 用宝塔不能安装mysql8 所以,自己直接安装一下1、yum仓库下载MySQL:sudo yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm然后你会发现这个源好慢 所...

2019-10-08 16:35:53 286

笔记_JAVA基础篇,面试必问的那些事.pdf

spring 框架是一个开源而轻量级的框架,是一个 IOC 和 AOP 容器,spring 的核心就是控制反转(IOC)和面向切面编程(AOP) 控制反转(IOC):是面向对象编程中的一种设计原则,用来降低程序代码之间的耦合度,使整个程序体系结构更加灵活,与此同时将类的创建和依赖关系写在配置文件里,由配置文件注入,达到松耦合的效果。与此同时 IOC 也称为 DI(依赖注入),依赖注入是一种开发模式;依赖注入提倡使用接口编程;依赖注入使得可以开发各个组件,然后根据组件之间的依赖关系注入组装。 所谓依赖,从程序的角度看,就是比如 A 要调用 B 的方法,那么 A 就依赖于 B,反正 A 要用到 B,则 A 依赖于 B。所谓倒置,你必须理解如果不倒置,会怎么着,因为 A 必须要有 B,才可以调用 B,如果不倒置,意思就是 A 主动获取 B 的实例:B b = new B(),这就是最简单的获取 B 实例的方法(当然还有各种设计模式可以帮助你去获得 B 的实例,比如工厂、 Locator 等等),然后你就可以调用 b 对象了。所以,不倒置,意味着 A 要主动获取 B,才能使用 B;到了这里,就应该明白了倒置的意思了。倒置就是 A 要调用 B 的话,A 并不需要主动获取 B,而是由其它人自动将 B 送上门来。

2020-03-09

Git原理详解与实操指南.rar

某课网的Git原理详解与实操指南 在开发项目的时候,我们可能会不断地去修改代码,但是有时候会遇到,想查看某一时间的代码这种情况,如果没有版本控制器,你可能需要不断地定时备份代码,但这样显然是很麻烦的,而且备份也不一定好用,比如某个时间点并没有修改代码,那么备份就重复了;再比如虽然备份了代码,但你并不知道两个版本有什么区别。

2019-10-25

山东矮达改机工具包

山东矮达改机用 SDGOTool2.exe

2019-01-10

activiti-5.13

Activiti是一个独立运作和经营的开源项目品牌,并将独立于Alfresco开源ECM系统运行。 Activiti将是一种轻量级,可嵌入的BPM引擎,而且还设计适用于可扩展的云架构。 Activiti将提供宽松的Apache许可2.0,以便这个项目可以广泛被使用,同时促进Activiti BPM引擎和BPMN 2.0的匹配,该项目现正由OMG通过标准审定。 加入Alfresco Activiti项目的是VMware的SpringSource分支,Alfresco的计划把该项目提交给Apache基础架构,希望吸引更多方面的BPM专家和促进BPM的创新。

2017-11-27

空空如也

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

TA关注的人

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