学习笔记
弱水提沧
不进则退,勿忘初心
展开
-
【SpringBoot】基于BeanDefinitionRegistryPostProcessor实现配置文件读取动态注入多个Bean
之前有写过一篇文章【设计模式】基于SpringBoot实现的策略模式,通过策略模式可以实现对于不同的参数,调用不同的bean,实现对于代码的最少侵入。基于这种方式,可以通过读取配置文件,注入到bean中,实现多个bean的配置方法。但是这种方式存在的问题就是:配置文件每增加一个配置,需要增加一个bean配置类。 多个配置增加的时候容易遗漏,容易出错。因此,本文将针对这种情况,基于BeanDefinitionRegistryPostProcessor实现配置文件读取动态注入多个Bean。一、Be.原创 2020-10-27 17:04:21 · 4485 阅读 · 2 评论 -
【Nacos应用笔记】Nacos配置中心搭建及动态刷新配置及踩坑
nacos配置中心搭建及自动刷新配置。Caused by: java.lang.IllegalStateException: The configuration of the pool is sealed once started. Use HikariConfigMXBean for runtime changes.导致的数据源与自动刷新配置冲突解决方案。原创 2020-05-31 14:55:23 · 21206 阅读 · 8 评论 -
基于K8s+docker搭建SpringCloud微服务工程(三)-- 工程服务的集群搭建与配置
在上一篇(二)Zuul网关的集群搭建与配置中,我们将网关搭建完毕。有了服务发现及注册,以及网关,一个基本的框架就算搭建完成,接下来就是不同的工程服务,通过容器部署在k8s集群中,注册在Eureka和Zuul网关上就行。一.搭建工程服务首先我们需要搭建好自己的console微服务工程,具体的搭建我这就不具体细说,这里并不需要对我们本身的微服务进行特殊的修改及配置,所有的配置均可以在k8s...原创 2020-04-13 20:08:32 · 1500 阅读 · 0 评论 -
基于K8s+docker搭建SpringCloud微服务工程(二)-- Zuul网关的集群搭建与配置
在上一篇(一)服务注册与发现Eureka的集群搭建与配置中,我们将基本的Eureka搭建完毕,接下来就需要搭建好对外暴露服务的Api服务,在我的项目中,使用的zuul作为api-gateway,接下来我将详细讲解,在工程中是如何配置并对外暴露端口提供服务的。一.搭建zuul网关服务首先我们需要搭建好自己的微服务Zuul工程,具体的搭建我这就不具体细说,这里并不需要对我们本身的微服务进行特...原创 2020-03-13 20:11:21 · 1894 阅读 · 5 评论 -
基于K8s+docker搭建SpringCloud微服务工程(一)-- 服务注册与发现Eureka的集群搭建与配置
近日,由于公司项目标准化改造需要,需要将docker-swarm编排的容器化部署的工程改造成使用k8s编排部署,因此有了以下的学习及研究的过程。阅读本文需要有K8S的基础知识,了解微服务的基本概念及docker的基本使用。k8s的学习从0到入门可以推荐一个不错的学习地址:https://kuboard.cn/learning将网站从头看到尾,基本也可以入门了。一. 搭建Eur...原创 2020-02-28 11:00:34 · 3209 阅读 · 2 评论 -
【学习笔记】使用proguard进行的JAVA 代码混淆(基于Maven的SpringBoot工程)
今天1024,整理一篇之前的记录,以此纪念1024,1024K = 1GB(一级棒)。由于公司要求,需要将入库版本的代码进行混淆,因此进行了这一项毫无意义的工作,多方调查后,终于成功实现混淆。下面我将介绍下我是如何将poguard嵌入maven工程中,进行打包的。使用方法,将proguard.cfg文件放置于pom文件同级目录下,同时在pom文件中进行配置即可打包。避坑指南:pom文...原创 2019-10-24 21:03:27 · 1124 阅读 · 0 评论 -
【学习笔记】mysql 自带aes_encrypt()加密与aes_decrypt()解密及乱码问题解决
由于安全性要求,需要对用户敏感信息进行加密处理。因此使用到了mysql的自带AES加密解密方法。其中使用的秘钥采用的静态常量注入的方式。常量类及常量属性:本次使用的mapper.xml方式,其他方式的话参考sql语句,也是可以达到一样的效果的。插入加密字段:HEX( ) 函数将插入值转换为16进制${ }使用占位符将常量类中的静态常量加入,作为加密秘钥AES_...原创 2019-09-02 19:49:51 · 20794 阅读 · 3 评论 -
【学习笔记】JAVA8使用Stream实现List操作
JAVA8使用Stream实现List操作Java 8引入了全新的Stream API。这里的Stream和I/O流不同,它更像具有Iterable的集合类,但行为和集合类又有所不同。 stream是对集合对象功能的增强,它专注于对集合对象进行各种非常便利、高效的聚合操作,或者大批量数据操作。 只要给出需要对其包含的元素执行什么操作,比如 “过滤掉长度大于 10 的字符串”、“获取每个字...原创 2019-07-31 19:41:07 · 1946 阅读 · 0 评论 -
【SpringBoot】使用jasypt将数据库明文密码加密(结合SpringBoot实现)
最近需要将数据库的明文密码进行加密,故使用到了jasypt加密,特此记录。下面是我的使用过程。一、准备工作1.1 pom依赖 <!-- 加密依赖 --> <dependency> <groupId>com.github.ulisesbocchio</groupId> ...原创 2019-05-30 20:37:21 · 3112 阅读 · 2 评论 -
【设计模式】基于SpringBoot实现的策略模式
策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。我自己的理解就是通过接口实现不同的方法,同时又可以根据自己的选择自动选择使用哪个接口的实现。情境: 某客户需要订购多个资源,每一个资源在不同的资源池下面,不同的资源池下面的资源又是不同的。由于不想使用多个if else来判断用户选择的资源池来进行资源的选择,所以使用...原创 2019-03-15 16:44:09 · 19014 阅读 · 10 评论 -
【docker】基于Harbor搭建自己的私有镜像仓库-全过程详解
最近学习服务的编排,慢慢的先把自己学习的东西整理整理,记录下来,共同学习。下面的步骤都是基于Linux系统,本文采用的是kali,这是一个很强大的基于Linux的安全开发人员的开发的系统,有兴趣的可以了解下哦。1.下载harbor并安装首先我们需要在github上搜索harbor下载地址。下载地址:https://github.com/goharbor/harbor/releases...原创 2019-01-15 21:21:57 · 4762 阅读 · 2 评论 -
【SpringCloud】搭建高可用分布式配置中心(Spring Cloud Config)(二)全过程详解(自动刷新)解决webhooks 400错误
本文基于第一篇搭建好手动刷新的基础上进行的自动刷新。详见(一)全过程详解(手动刷新)。在搭建好第一步的手动更新的配置中心之后,要实现自动更新就很简单了。一. config-client添加依赖pom.xml文件中添加: <dependency> <groupId>org.springframework.cloud<...原创 2019-01-17 20:41:27 · 1715 阅读 · 3 评论 -
【SpringCloud】搭建高可用分布式配置中心(Spring Cloud Config)(一)全过程详解(手动刷新)Spring Cloud 2.0.2.RELEASE
由于网上资料大多数基于SpringBoot2.0以下版本搭建配置中心,而2.0版本以上的资料较小,因此基于SpringCloud2.0.2.RELEASE搭建了一个手动刷新的配置中心,在(二)全过程详解(自动刷新)WebHooks中将会讲解,该如何实现自动刷新配置。话不多说,接下来就是如何实现。一.新建Config-Respoity项目我是在码云上建立的配置库,在github上也可以,...原创 2019-01-17 16:27:04 · 602 阅读 · 0 评论 -
【笔记】SpringMVC中@ModelAttribute与@RequestBody的区别
最近在写代码的过程中,发现之前项目都是使用的@ModelAttribute注解,而自己的一贯使用都是@RequestBody,在网上找资料也没有发现写的十分具体的博客,因此自己写了个SpringBoot的样例进行了测试验证。 @ModelAttribute与@RequestBody都是用来注解解析前端发来数据,并自动对应到所定义的字段名称。 这里先放结论,使用@Mode...原创 2018-10-15 14:40:14 · 9935 阅读 · 5 评论 -
【笔记】抽象方法与方法重写的区别
【问题】:既然子类继承父类可以重写父类方法,那在父类中写一个空的实现方法和写一个抽象方法的区别在哪呢?抽象方法是指abstract修饰的,且在类中没有方法体的方法;子类方法的重写是指继承父类的某个实例方法,这个方法的类型和父类方法的类型一致或者是父类方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同。 如代码所示:public abstract cl...原创 2018-08-07 21:02:17 · 3876 阅读 · 2 评论