自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(579)
  • 资源 (5)
  • 收藏
  • 关注

原创 spring IOC 源码贯穿解析

spring是一个容器,在刚开始的时候我们就已经告知spring需要创建哪些Bean,启动之后再去spring中获取。创建Bean一般有XML和注解的方式创建,使用xml的方式会以文件流的方式读取成为Bean的定义信息,简称BD。有了Bean的定义信息之后,spring就会进行实例化,spring是采用new的方式还是反射的方式,对。采用的是反射的方式。上图中在xml中定义了一个Bean的信息,采用的的赋值方式是使用${}的方式赋值,是在实例化Bean之前还是之后呢?是如何进行取值的呢?

2021-11-09 20:27:46 223

原创 Mac M1 安装gitlab——访问本地端口失败

拉取arm64。

2022-09-22 16:54:26 498 1

原创 淘宝:消息中间件——notify

为什么会使用消息中间件?消息中间件产生的背景?用户在银行的网关付钱后,银行需要通知到支付宝但银行的系统不一定能发出通知;如果通知发出了,不一定能通知到;如果通知到了,不一定不重复通知一遍;消息中间件的实际应用例如,拍下一件商品,在交易管理系统中完成时,它需要通知商品管理系统减少库存,通知旺旺服务系统发送旺旺提醒,通知物流系统上门取货,通知SNS系统分享订单,通知公安局的系统这是骗子……用户的一次请求,在底层系统可能产生10次的消息通知Not

2022-02-28 20:42:10 697

原创 分库分表的小节

希尔排序就是一种分组排序的思想比如一个长度为10的数组,那么第一次分组就是分成 5 组第二次分组就是分成 2组第三次分组就是分成1组所以:分成5组进行排序实际上就是 对5的倍数的下标进行排序分成2组就比较明显了,就是对偶数下标和奇数下标进行排序...

2022-02-27 17:28:39 734

原创 常见的时间复杂度

常见的算法时间复杂度由小到大依次为:常数阶 < 对数阶< 线性阶< 线性对数阶< 平方阶< 立方阶< 指数阶O() < O() < O() < O() < O() < O() < O()随着​的规模不断增大,上述时间复杂度不断增大,算法的执行效率越低常数阶O()无论代码执行了多少行,只要是没有循环等复杂结构,那这个代码的时间复杂度就是O()in...

2022-02-25 11:06:10 7035

原创 BeanFactory和applicationContext有什么关系

BeanFactory和applicationContext有什么关系如图所示,继承的关系什么是上下文,如何解释就是为了获取之前存在的一些参数和一些变量,或者之后的一些参数和一些变量,可以简单也理解一个容器有了上下文之后,就可以往里面设置属性、设置参数...

2022-02-20 12:12:32 152

原创 spring Boot的自动配置原理 和 @Configuration 为什么只会实例化一次?

@EnableAutoConfiguration开启自动配置功能,以前我们需要配置的东西,Spring Boot帮我们自动配置;该注解告诉SpringBoot开启自动配置,会帮我们自动去加载自动配置类发现该注解被 @AutoConfigurationPackage 修饰,查看该注解...点击进入引入的类: AutoConfigurationImportSelector.class发现该类实现了 DeferredImportSelector,延迟导入选择器,该接口实际是继承自 Im

2022-02-12 17:27:24 1523

原创 Mybatis源码思路 连成线

SqlSessionFactoryBuilder做了什么事?1、获取mybatis的配置文件(mybatis-config.xml)流信息,支持字符流(reader)和字节流(inputstream)2、调用XMLConfigBuilder将配置文件流信息解析成Configuration对象3、使用解析出的Configuration对象创建出 DefaultSqlSessionFactory 默认的SqlSessionFactory4、延伸一下:DefaultSqlSessionFactor

2022-01-25 19:42:33 821

原创 Docker深入:docker的网络

问题: docker是如何处理容器之间的网络访问的?运行docker内的Tomcat容器docker run -d -P --name tomcat01 tomcat查看Tomcat的地址在Windows上是否能ping通该地址,由下图可知:Windows主机是可以ping通docker容器内部的我们每启动一个docker容器,docker就会给docker容器分配一个IP,我们只要安装了docker,就会有一个网卡docker0桥接模式,使用的技术是 evth-pair技术..

2021-12-26 11:18:04 1186

原创 Docker: Dockerfile 镜像构建文件

DockerFile介绍DockerFile : 就是用来构建docker镜像的构建文件,命令脚本构建步骤:1、编写一个dockerFile 文件2、docker build 构建成为一个镜像3、docker run 运行镜像4、docker push 发布镜像(DockerHub、阿里云镜像仓库)DockerFile构建过程基础知识:1、每个保留关键字(指令)都是必须是大写2、执行从上到下顺序执行3、# 表示注释4、每一个指令都会创建一个新的镜像层,并.

2021-12-26 00:14:20 1003

原创 docker: 容器数据卷的基本操作(wsl)

启动Nginx镜像,把Windows的3344端口映射到Nginx的80端口C:\Users\dell>docker run -d --name nginx01 -p 3344:80 nginxbbe4f8774d8b97cf798e06e6c4caed9a6623b7e0b03602b82cf8851347c86446查看端口 (niub)

2021-12-25 20:14:15 2191 1

原创 Docker的常用命令(使用wsl)

启动并交互式进入容器docker run -it xxx /bin/bash查看正在运行的容器docker ps查看曾经运行过所有的容器docker ps -a显示所有容器的编号docker ps -aq容器退出:exit 停止容器退出Ctrl + P + Q 不停止退出容器删除docker rm 容器id 删除容器docker rm -f $(docker ps...

2021-12-22 00:41:21 850

原创 git pull 出现The following untracked working tree files would be overwritten by merge:bin/run.sh

在使用Jenkins启动服务时,发现服务端口被占用,启动不起来查看某个端口的占用情况:netstat -tunlpp | grep xxx获取到占用该端口的进程id是 18095,而且还是一个java程序,所以,我们直接运行ps -ef |grep java ,确定的确是我们需要重启的项目,直接kill掉重启成功The following untracked working tree files would be overwritten by merge:bin/ru...

2021-12-21 00:47:38 1017

原创 导出种子数据

删除sequenceSELECT * from user_sequences t where t.sequence_name like 'HEIS%'drop sequence HEIS_ACCOUNT_DEFAULT_S;删除索引select* from all_indexes where table_name like '%HEIS%';DROP INDEX PK_HEIS_ACCOUNT;删除日志...

2021-12-17 00:36:28 631

原创 关于菜单导出的注意点

1、使用线上的导出工程会有问题导出的菜单的parentId会有2万多的parent_id,实际上我们的菜单的父级菜单的id也就3000多,数据就是导出错误了,正确的导出应该是iam_menu-xx建议不要使用线上的导出的工程2、使用本地启动的 hzero-generator-1.7.0-product这个工程导出的菜单的数据选择数据处理的种子数据导出选择的是测试环境,然后选择对应的项目下的菜单查看正确导出的结果,可以发现parent_id是根据公式=外键引用创建生成的..

2021-12-16 00:10:21 116

原创 导入表结构到Oracle环境需要注意的点

从表设计结构中导出表的数据,再使用resource工程导入到Oracle数据库中,第一次导入不会有问题,若导入完成之后发现导出的数据有问题,需要删除表重新导入,此时resource工程就会报很多问题第一次导入失败:删除Oracle的之前导入的表,重新导入错误日志:CREATE SEQUENCE xxx START WITH 1什么是sequence呢?当表中的字段属于自增字段时,Oracle会自动创建该字段对应的数据,如下图SELECT * from user_sequences t

2021-12-15 23:58:06 814

原创 流水线发布springboot应用到oracle环境

1、提取种子数据种子数据:包括项目中用到的值集、路由等等需要用到的工程:hzero-generator-1.7.0-product工程中需要修改的resource包下的 service-mapping.xml,需要新增标签,标签内容仿照上面标签,然后在service包下创建和新增标签name同名的xml,直接复制,然后更改为自己的项目名称,注意下面这行,查询出的是最近更新人是 - 1 (匿名用户)然后like后面全部都加上 项目名的%进行模糊查询这就是提取种子数据的工程需要修..

2021-12-14 23:18:15 843

原创 Hand SecurityTokenHelper的源码

加密时使用到的实体,pkValue表示的是主键生成token的流程:首先是构建成一个 SecurityTokenEntity类,该类必须含有以下四个属性,然后使用AES加密方式,对SecurityTokenEntity的序列化字符串进行加密 public static <T extends SecurityToken> String generateToken(T obj) { if (noContext()) { logger.de

2021-12-07 23:07:56 267

原创 Json parse error:Cannot construct instance of `org.hzero.eis.app.vo.Items

今天遇到一个很奇怪的问题:和前端联调时,前后端测试都是没问题的,然后发布到测试环境,就出现了“程序出现错误,请联系管理员”,上面的图就是报的错误。详细的报错信息:Json parse error:Cannot construct instance of `org.hzero.eis.app.vo.Items`(althougu at least one Creator exists):no String-argument constructor/factory method to deserial...

2021-12-06 22:35:56 4545 4

原创 MYSQL sql查询将 2021-12-02 01:15:16 时分秒改为00:00:00

UPDATEheis_account_rel_tenanthartSEThart.start_date=DATE_FORMAT(hart.start_date,'%Y-%m-%d00:00:00')UPDATEheis_account_rel_tenanthartSEThart.end_date=DATE_FORMAT(hart.end_date,'%Y-%m-%d00:00:00')

2021-12-02 15:18:40 1355

原创 Java的代理 、JDK的动态代理必须是接口

Java的静态代理:静态代理模式在不改变目标对象的的前提下,实现了对目标对象的功能扩展上图:用户访问admin接口,实际上由proxy代理,proxy和implement都实现了admin接口,只不过proxy对接口进行了功能的增强(对用户的权限判断)缺点:由于代理需要实现代理接口,如果代理接口增加或修改接口,代理类也需要进行更改,增加了维护的成本JDK的动态代理方法一使用代理调用:理解:InvocationHandler是一个功能增强的类,你...

2021-11-29 20:42:57 713

原创 Java 的this关键字

1、this引用当前类的实例变量用于解决实例变量和参数之间存在的歧义2、调用当前类的方法,如果不加,编译器会自动加上this在spring中方法如果是添加了事务,则不能使用this去调用或者直接调用,因为只有从IOC容器中的拿出的对象才有事务的功能。3、调用构造函数并且this()必须是构造函数中的第一条语句...

2021-11-29 09:43:38 264

原创 mybatis显示IndexOutOfBoundsException、日志规范、There is no getter for property named ‘xxx‘ in ‘class xxx

### Error querying database. Cause: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2### The error may exist in file [D:\生态组件\hzero-ocr\hzero-ocr\target\classes\mapper\AccountRelTenantMapper.xml]### The error may involve org.hzero.ocr.infra.mappe...

2021-11-12 10:08:25 1104

原创 git的撤销操作amend

撤消操作在任何一个阶段,你都有可能想要撤消某些操作。 这里,我们将会学习几个撤消你所做修改的基本工具。 注意,有些撤消操作是不可逆的。 这是在使用 Git 的过程中,会因为操作失误而导致之前的工作丢失的少有的几个地方之一。有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有–amend(修正、修改) 选项的提交命令尝试重新提交:$ git commit --amend这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,在上次.

2021-11-08 13:37:58 784

原创 git 的origin的含义、rebase-变基

“origin” 并无特殊含义远程仓库名字 “origin” 与分支名字 “master” 一样,在 Git 中并没有任何特别的含义一样。 同时 “master” 是当你运行git init时默认的起始分支名字,原因仅仅是它的广泛使用,“origin” 是当你运行git clone时默认的远程仓库名字。 如果你运行git clone -o booyah,那么你默认的远程分支名字将会是booyah/master。rebase-变基你可以提取在C4中引入的补丁和修改,然...

2021-11-07 11:29:30 564

原创 导出groovy数据,并且导入到数据库中

一、导出groovy数据二、导入数据库中创建脚本#!/usr/bin/env bashmkdir -p targetif [ ! -f target/hzero-tool-liquibase.jar ]then curl 'http://nexus.saas.hand-china.com/content/repositories/Hzero-Release/org/hzero/tool/liquibase-tool/1.0.0.RELEASE/liquibase...

2021-11-04 19:29:28 452

原创 账户的高级查询 解决分页查询时 页码数据显示为空

高级查询的信息: 租户 + 租户下的账户信息分页:根据租户分页,比如:一页显示10条租户信息,账户信息可能远远不止10条当进行条件筛选时,每一个模糊查询条件都需要查询出所有的租户和账户的数据更改为根据账户分页 ——————————...

2021-11-01 11:29:27 339

原创 readValue读取复杂对象

需求:将汇联易的识别的发票信息转化成Hzero的DTO只有一个难点:使用objectMapper.readValue时,当对象中包含了复杂的对象时,不应该使用类作为参数代入,应该使用TypeReference@JsonInclude(value = JsonInclude.Include.NoN_NULL)表示实体类为null的值不参与实例化...

2021-10-27 09:11:19 224

原创 URL 和 URI 的区别

URL 和 URI 的区别URL:目前URI的最普遍形式就是无处不在的URL或统一资源定位器。URI是以某种统一的(标准化的)方式标识资源的简单字符串。使用restTemplate发送HTTP请求时,需要注意的点:当传入的是URL时,会自动使用encode将URL中的%替换成25此时如果是自己特殊定义好的访问路径时,必须使用URI当使用restTemplate发送请求之后,使用自定义对象接受时,如果发现接受到的值都为null时,应该检查自定义对象是否添加上了get/set方法。.

2021-10-13 11:27:07 127

原创 @Autowired的注入规则

1、@Autowired默认情况下按照类型在spring容器中查找对应的组件 :context.getBean(XXX.class);比如:此时,如果容器中只有一个userservice的bean,那么就会根据UserService.class进行注入2、如果容器中存在多个userservice的bean对象,那么就会根据属性的名称作为组件的id在容器中查找context.getBean("xxx");此时就会根据userservice2进行查找bean3、使⽤@Qua.

2021-10-09 22:32:29 5264 1

原创 使用Stream流来生成迭代数和随机数、BASE64加解密

2021-10-07 20:53:17 842

原创 四大内置核心函数式接口

Consumer:消费型接口(void accept(T t))有参,无返回值Supplier :供给型接口(T get())无参,有返回值Function<F,T> :函数型接口(R apply(T t))有参,有返回值Predicate : 断言型接口

2021-10-07 18:27:19 90

原创 关于Page及page的分页问题

使用mapper查询出的结果是Page类型的数据,但是可以拿Page的父类List去接受,但是如果拿Page类型的数据去做集合相关的操作比如remove()、set()、add()时,会报不支持的operation操作,意思是Page类型的父类数据调用remove方法时,会直接抛出该异常。正确处理方法是:mapper的查询结果使用Page类型来接受,需要处理数据的话,使用Page.getContent() 。接下来就是Page.getContent()该方法获取的是当前分页的数据,.

2021-09-28 23:20:31 2827

原创 union可能导致列名找不到错误

当使用union时,某些字段可能会使用null as xxx,导致这些字段不可根据where条件进行筛选

2021-09-22 23:36:15 273

原创 DDD模型的代码格式规范

1、前端请求的路径不要使用-连接,可以使用/进行区分例:/v1/account-advance-setting/v1/accounts/advanced2、修改请求使用 PutMapping,不要使用Post例:@PostMapping("/updateInfo")@PutMapping()3、依赖注入统一使用构造方法注入,不要使用set注入4、对于0这个魔法变量,使用框架已经定义好的常量表示aseConstants.DEFAULT_TENANT_ID5

2021-09-16 08:54:13 401

原创 Error attempting to get column ‘type_code‘ from result set,invaild value for getInt() -xxx

在排除 不是字段的对应的问题之后,解决方式在实体类上增加 全参构造和无参构造

2021-09-07 17:36:14 154

原创 Mybatis中遇到的 Invalid value for getLong()-“xxx“

出错原因:该框架可能将第一个字段当作了Long类型的字段进行了处理,而我们将第一个字段写成了非Long类型的字段,映射时就出现了该异常所以,应该将下图中的红色框中的字段放在后面...

2021-09-07 00:19:35 655

原创 Hzero-本地swagger注册不进去,显示连接超时,或者显示网关error

本博客只针对于hzero平台,没听说过的可以直接划走!!connect timed out; nested exception is java.net.SocketTimeoutException: connect timed out这是罪恶的根源!!swagger中测试:{"requestStatus":"UNKNOWN_GATEWAY_ERROR","requestCode":"error.unknownGatewayError","requestMessage":"connect.

2021-08-30 23:05:51 1268

原创 IaaS、PaaS、Saas、ERP的概念理解

IaaS消费者通过网络可以从完善的计算机基础设施获得服务。这类服务称为基础设施即服务。即通过软件平台将大量硬件资源集中管理,根据用户请求按需分配空间、计算能力、内存大小、防火墙、操作系统、网络环境等基础设施,以满足用户需求。只是提供了工程运行的环境和条件优点在于基础设施可以动态扩展,根据需求升级而增加基础设施的配置和容量。用户只为自己使用到的部分付费,降低运营成本。付费后可以立即获取需要的升级,无须等待较长时间。缺点是安全性和稳定性不确定(阿里云服务器出问题,想想概率大吗?),当服务提供方网络出

2021-08-25 23:50:47 755 1

原创 使用valid注解校验数据

我们手动对每一个数据进行代码校验,会显得笨重且重复,于是就产生了注解的方式我们在对象中属性上添加例如:@NotBlank @Length @Max @Min @Patten等等注解时,程序会“自动”替你校验数据,但是需要在controller的请求体上添加上@Valid注解,并且使用BindingResule注解来接受返回的错误信息,一般的错误信息不止一个,通常采用的是Map来封装进行返回 public Map<String,String> getErrors(Binding...

2021-08-24 00:11:46 426

设计模式.zip

设计模式详解

2020-12-13

captcha(图片验证码).zip

图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包图片验证码的包

2020-08-28

cloudi-woniumall.zip

蜗牛商城,实现了用户登录界面

2020-08-26

static.zip

静态资源的包静态资源的包静态资源的包静态资源的包静态资源的包静态资源的包静态资源的包静态资源的包静态资源的包静态资源的包静态资源的包

2020-08-25

编写一个简单的注册函数,将该用户信息保存到本地文件中。

编写一个简单的注册函数。 # 要求用户输入用户名和密码,如果用户名为空或密码长度小于6位则提示用户错误信息后返回。 # 如果用户输入正确,则提示用户注册成功,并将该用户信息保存到本地文件中。 # 要求保存时加入一个从 0 开始的整数 id 值,每个用户的 id 值依次递增 1。 # 再次运行程序时,可以从已有的用户id值继续往下添加。

2020-08-06

空空如也

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

TA关注的人

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