自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【java应用web3】web3j中,顺利编译智能合约sol为java文件的正确方式。并在java中调用智能合约

java通过web3j来编译sol的方案介绍。

2022-06-11 05:19:13 3353

原创 【跟乐乐学solidity】五 智能合约接口规范:IBEP-20,ERC-20等接口

一.接口规范的意义我们都知道,智能合约本身是一个程序,它可以根据你的想法开发一些诸如众筹之类的应用,但智能合约本身更大的则是从合约池子购买和出售等作用。因此,以太智能合约提出了IERC20和ERC20等接口规范,用于让人们便写合约时,根据其接口来开发经典的交易功能。对于IERC20和ERC20的标准实现,可以参考下面两个文章:详细讲解ERC20:https://www.jianshu.com/p/cc81e7b66f8eIERC20及ERC20的标准实现例子:https://blog.csdn.n

2022-03-22 21:32:51 1408

原创 【跟乐乐学solidity】四 以太智能合约项目实践:众筹捐款应用

项目需求:众筹捐款一个可以让任何人发起众筹进行募捐的应用,并让任何人参与捐款的鹰用。捐款发起方:发起捐款时需要指定收款钱包地址和要募集的捐款金额,达到此金额后,将不再接收捐款。捐款方:作为捐款方,需要指定捐款发起方的id以及自己要捐款的金额进行捐款。代码pragma solidity ^0.4.16;contract crowdFunding { struct Initiator {//发起方结构体 address helpSeeker

2022-03-18 00:25:07 417

原创 【跟乐乐学solidity】三 进阶:以太合约函数、切面特性、多重继承特性

一.重载solidity具有和java一样的方法重载概念,大致用法也和java一样。但是有一点需要注意的是,形参的类型如若是uint数字类型,则需要避免位数冲突。比如说下面这一种,testReloadMethod作为重载方法名,一个形参是uint16,一个是uint,而合约内部的loadMethod方法传递了123去调用重载方法,发生了报错。为什么呢?因为123这个值既可以是单位数(uint)也可以是8位数(uint8)编译器不知道,你应该传给哪个重载方法,所以报错。而当改为256时,就不会报

2022-03-08 23:57:15 7793

原创 【跟乐乐学solidity】一 基础:字节数组/普通数组与字符串操作

一. 动态长度字节数组所谓动态长度字节数组,是指长度可以改变的数组。比如我一开始定义一个数组的长度为3,但是后来我可以把它的长度改为5.pragma solidity ^0.4.16;contract bytesDynamicArray { bytes dynamicArray = new bytes(3);// 定义一个长度为3的动态字节数组成员对象。 //获取长度 function getDynamicArrayLength() view retur

2022-03-03 00:54:17 10086 1

原创 retrofit2中,响应参数的int类型会被转为double小数点的解决办法。

retrofit2版本:2.3.0我使用retrofit2作为接口请求框架。但是我发现在响应时,解析的响应内容总会有问题。其中的"code"应该是0,而不应该是0.0。

2024-03-10 02:22:01 299

原创 位移运算法的解释与hashMap的应用。

左位移运算发和hashMap。

2022-10-21 20:09:06 683 1

原创 【跟乐乐学seata分布式事务组件】springCloudAlibaba分布式组件Seata 1.3.0集成教程

seata分布式事务集成教程

2022-09-06 15:14:19 758

原创 web3中,获取指定contract的pool地址

有时候我们需要知道某个contract的池子地址,我们可以去链上浏览器查看,也可以通过web3查看,以下我bsc的contract举例,以json-rpc和web3.js两种形式来获取。实现思路是通过abi定义,指向一个绝大多数bsc的contract都存在的函数名,来获取池子地址。web3.js实现 纯js代码下面是web3.js中,纯.js脚本实现的代码:const routeraddress = '0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73' /

2022-04-16 16:26:35 5700

原创 【跟乐乐学web3开发】一.使用IDE工具webstorm来编写web3js

前言web3可以用java语言来编写,通过java的web3j依赖来编写,但是web3j对于abi的应用等支持库不太完整,所以还是多少有点局限性。因此在当今的web3领域中,使用基于javaScript的web3.js库来编写web3应用是主流。市面上大多的教材中,对于web3.js的编写是基于vscode这一款ide工具,这里我则是使用了webStorm来编写。在使用webstorm编写web3应用前,需要确保你的环境已经安装了nodeJs以及npm。同时,读者需要具有一定的javaScript

2022-04-16 04:36:10 7670

原创 Java的Mybatis中,以最简单的方式实现按年月日时分秒查询。

需求如下:首先,传入的参数类型,要为Date类型。这里以实体类举例:@Data@EqualsAndHashCode(callSuper = true)public class OutwardParams extends BaseEntity { @ApiModelProperty("被叫号码") private String calleeNum; @ApiModelProperty("部门Id") private Long deptId; @Ap

2022-03-02 15:10:29 1582

原创 【solidity基础】 固定长度字节数组

在学习solidity的固定长度数组之前,首先需要明白的一点是,字节数组是用16进制表示的。在16进制所表示的字节数组规则中,两个数字/字母占一个数组。如 aa 所占的16进制字节数组长度为1。b7ab 所占的16进制字节数组长度为2.f9a8b7b9c521 所占的16进制字节数组长度为6.需要注意的是,在solidity中,在为其字节类型的变量赋值时,值前面必须要加上’0x'才可以,否则编译失败。而且,长度的计算标准,也是忽略了’0x’。而string字符串等数据,可以转换为16进制(也就

2022-02-28 00:10:55 965

原创 通过Redis实现分布式锁 代码分享。

Redis实现分布式锁的作用和意义,可以参考这篇文章:https://zhuanlan.zhihu.com/p/268290754代码的话,不废话,直接看我在项目中用的。一.配置RedisTemplate对象我是基于RedisTemplate对象来实现分布式锁的,而不是jedis。package com.wuyouhu.common.redis.configure;import org.springframework.cache.annotation.CachingConfigurerSuppo

2021-12-13 23:42:58 1365 2

原创 mysql 查询一条语句中,哪些走了索引,并对没走索引的进行优化。

在需要查询的Sql前加上‘EXPLAIN’即可。示例某条sql要联调查询4张表,分别为sys_user,sys_user_fs,explicit_number,sys_dept。他们各自表的索引和字段如下sys_user:sys_user_fs:explicit_number:sys_dept:现在我们执行这条sql语句,来看看用到了哪些索引。EXPLAIN SELECT u.user_id, u.dept_id, u.user_name, u.real_name, u.

2021-12-13 18:57:34 1425

原创 使用Stream进行嵌套遍历。

需求:对集合A和集合B进行遍历,判断集合A存在的元素是否同时也在集合B存在,统计出存在的数量。如集合A存在10个元素,集合B存在100个元素,但集合A只有8个元素和集合B的元素一致,那么就返回8.代码: List<String> coinNames = Arrays.asList("ETH,LINK,XMR,BCH,AXS,DOT,VRA,AVAX,ADA,LUNA,NBTB".split(",")); List<String> verifi

2021-12-10 10:41:29 1646

原创 使用Stream流进行过滤,并相加计算总和。

需求对一个集合进行条件过滤,然后计算某个字段值相加后的总数。/** * 商家卖家交易实体 * */@Datapublic class Trade { private String instId;//产品ID private String sz;//交易数量 private String side;//交易方向 buy:买 sell:卖 public Trade() { }}代码 @Test public void tes

2021-11-29 09:47:14 7901

原创 nginx如何配置其能够访问目录文件。

有时候,我们有一个文件夹存放了资料,压缩包。我们需要能够像访问ftp一样,访问这个网站的某个路径,然后浏览这个目录下的文件并下载过来。在使用nginx做web服务的情况下,假设我们在网站根目录下创建一个名为’download’的目录,里面有一些文档。那么访问http://www.xxx.com/download是会报nginx 403 forbidden这个错误的,提示你没有权限。这个时候就需要修改nginx.conf来配置一下这个这个网站的转发设置了。修改后,就可以访问了:修改前:serv

2021-11-13 02:42:17 17152

原创 java项目打为jar包后,依赖没有一同打包的解决方法。

使用某产品的官方javasdk写了个小工具,想打包放在服务器上跑。通过Maven来package之后,尝试运行。报了错:Error: A JNI error has occurred, please check your installation and try againException in thread "main" java.lang.NoClassDefFoundError: com/alibaba/fastjson/JSON at java.lang.Class.getD

2021-10-17 18:39:22 1824

原创 解决SpringBoot打为jar包后,通过response.getOutputStream下载文件内容为空。

背景:项目中有一个下载文件模板的功能,文件为excl表格文件。问题是在Idea运行这个项目时,下载的文件是有内容的。但打为jar包后下载的文件是空的。解决:首先查找原因,发现,一个原因是打为jar包后,路径有变,而我代码中获取文件的方式不适用于Jar包,改为this.getClass().getResourceAsStream("/templates/seatInfoTemplate.xls")解决。但发现下载的文件还是为空,通过InputStream流对象的available方法获取长度,发现在

2021-09-29 15:01:45 3686

原创 使用Stream流遍历过滤Map集合 及 使用Stream流遍历指定变量并组成新的集合

List<Map<String, Object>> list = this.getQuestionList(map); List<String> listStr = list.stream().map(item -> item.get("ID").toString()).collect(Collectors.toList())

2021-09-23 16:39:43 6541

原创 centos7中,后台运行jar包达到守护进程的目的。

在一般情况下,我们在服务器通过 java -jar xxx.jar 来运行一个jar包。但是如果我们退出了控制台,那么这个程序就将被关闭。那么,如何实现让jar包后台运行呢?这里有三种方式第一种方式:java -jar xx.jar &第二种方式:nohup java -jar xx.jar &第三种方式(推荐):# 1.先正常运行Jar包。[root@abc906093117 ~]# java -Dfile.encoding=utf-8 -jar huobi-cli

2021-09-22 00:03:12 2063

原创 在代码中,给java程序自身设置网络代理来爬虫相关站点或使用相关api。

在开发中,我们可能会使用到某些api。但是这些api(如谷歌云)因为一些因素,我们本机是无法直接访问的。最要命的是,我们开发中必然要用到这些api,而尽管本机开启了代理,但是java程序本身却不走代理,完全无法开发下去。这个时候,我们要为java程序本身设置一个代理了,这是在代码中来实现的,也很简单,就是通过System类来配置。代码如下: public static void main(String[] args) { System.setProperty("socksP

2021-09-21 05:44:53 195

原创 mysql 统计报表界面查询案例 经典sql语句

要照着一个界面实现一个报表及其报表统计的查询功能。界面如下:而我,则要只通过一条sql语句,来完成所有字段的展示。根据界面得知,查询条件有4个,分别为商机名称,单位简称,开始时间,结束时间。排序条件有5个,分别为派单数,外呼数,呼通数,有意向数,呼叫时长要查询出的字段有14个。现在,我要照着这个界面实现这个功能,方案是通过一条sql语句来实现,而不是在java层做处理那么,既然要实现,我们就需要先清楚这之间的字段关系,首先我先介绍案例中,我们要用到的4张表分别为business,act

2021-09-06 02:39:56 2875

原创 若依框架中@DataScope数据权限注解的使用与自定义sql语句。

介绍若依框架本身具有角色、部门、用户业务。在业务中,用户必须绑定一个角色,而角色又必须将自身绑定到部门,角色绑定了哪些部门,就决定着隶属于该角色的用户能对哪些部门数据进行增删改。那么,怎么实现让用户只能遵循其绑定角色所指定的部门,来进行数据范围控制呢?一般情况下,假如我们对一张表要进行查询或更新的话,需要在sql语句中,where条件语法后面 加上 dept.id = {currentDeptId} 来进行过滤,例如下面的sql语句:select * from sys_userwhere de

2021-09-05 03:53:33 17548 3

原创 在Swagger中,如何给暴露的接口及其参数添加说明描述?

Swagger是个测试工具,它能将我们在controller层暴露的接口添加说明。给类和方法添加说明描述一.我们可以使用@Api注解,在一个controller类上添加说明。如下:那么,访问swagger时,就能看到这个controller类的描述了二.我们可以通过将@ApiOperation注解,写在controller层的方法上,来说明该方法的作用。给实体类的字段添加描述。我们可以给实体类的字段添加描述。那么,我们为什么要给实体类的属性添加描述呢?这是因为在开发中,我们的con

2021-08-22 23:36:11 22584 4

原创 用Stream流遍历两个集合,对比出数据差异。

今天开发一个需求时,要对A和B两个List集合遍历,并比较出集合A有,而集合B没有的值。比如说List集合A有’one’,‘two’,‘three’三个值,List集合B有’one’,‘three’两个值。那么最终打印’two’。下面我就用stream流来做个例子。例子中,集合A的泛型为HashMap,集合B的泛型为String。Stream流中,forEach()方法用于对一个流进行结尾动作,同时对最终过滤后的元素结果进行一个遍历操作。我们可以在forEach()中直接写入类和其对应方法名,来

2021-08-19 00:38:19 11395 1

原创 运行nacos作为配置中心和注册中心的jar包时,报YAMLException配置读取错误等异常的解决方法。

要将三个模块部署在测试服务器,打包方式为jar。为了确保能够运行顺利,我先将其打包为jar包后,在本地运行。接着dos窗口报出以下异常。org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1 at org.yaml.snakeyaml.reader.StreamReader.update(StreamReader.java:218)

2021-08-14 18:24:56 1757 1

原创 跟乐乐学微服务!(四)Spring Cloud组件 Feign

上一篇文章:跟乐乐学微服务!(三)SpringCloud组件熔断器 HystrixFeign是什么?Feign可以对服务提供方所暴露的url请求地址进行拼接封装,然后伪装成一个接口的方法,消费方可以通过调用这个Feign伪装了的接口方法,去请求服务提供方。是的,说带‘伪装‘,Feign的英文意思叫伪装,事实上它在Cloud微服务中最大的作用就是伪装成方法去调用服务提供方。同时,Feign也集成了Ribbon负载均衡,这是因为当服务消费方通过Feign伪装了的接口方法去请求服务提供方时,会自动进行负

2021-07-23 00:31:09 500 6

原创 跟乐乐学微服务!(三)SpringCloud组件熔断器 Hystrix

Hystrix能用来做什么?Hystrix是一个熔断器,主要用于解决微服务中的雪崩问题,从而保证各个微服务的正常运行。什么是雪崩问题?假设我有一个即时小额贷款系统,用户这时要完成一次即时小额贷款,那么需要通过调用服务,完成 提交即时贷款申请 、获取征信信息、记录贷款信息到后台、获取贷款额度 这四个步骤。而我们的系统架构是微服务架构,现在存在三个服务。一个是服务消费者:接受用户的贷款请求,去消费服务提供者,另一个是服务提供者A:提交即时贷款申请 和 获取征信信息,再一个是服务提供者B:记录贷

2021-07-19 23:38:23 223

原创 跟乐乐学微服务!(二) SpringCloud组件负载均衡Ribbon的应用

Ribbon介绍在微服务中,消费者需要去访问注册中心,从注册中心中拉取服务提供方的服务地址。但是,我们不妨设想一下这个问题。假如有两个相同服务提供方的服务实例注册到了注册中心,分别为Provider A和Provider B。那么此时,消费者这边在不知道哪个最为空闲的情况下,必须要选择其中一个服务提供者;后果就是所有请求都将访问这个服务提供者,增加了该的负担。...

2021-07-18 22:30:31 230 4

原创 SpringBoot手动提交事务。

背景做一个迁移项目,由原先的C#迁移到java。但是比较操蛋的是,公司要求业务逻辑按照C#实现,而C#中有用到手动控制事务,java这边用的则是springboot框架。要知道,普遍情况下,一般是是使用@Transactional来进行自动事务提交或回滚的。那么,在SpringBoot中,我们该如何实现呢?SpringBoot实现手动事务我现在举例实现一个业务。有两个Service层的方法,他们都在同一个类里头,一个方法A,一个方法B。方法A调用方法B,方法B里头则会调用dao层来操作数据库;

2021-07-05 11:36:55 8519

原创 跟乐乐学Docker容器!

认识Docker什么是Docker‘容器’?Docker是一种容器,准确来说是一个应用容器引擎,比如一个centos服务器系统,当前的生产环境是jdk8,mysql5.1,nginx5,那么我们可以通过Docker把当前系统‘拷贝’,然后‘粘贴’在centos服务器上通过简单的操作就能部署完全相同的环境。而这之间的’拷贝‘和’粘贴‘,就需要Dokcer这种容器来实现。Docker用来做什么?比如说,程序员A和程序员B分别要在不同的服务器上部署同一个项目。但是程序员A的服务器是jdk8,mysql

2021-06-27 14:32:17 2833 1

原创 指定jar包Main入口的二种方式

有时候,我们打包好了一个jar包。但是当通过命令 java -jar xxxx.jar 运行时,我们应该如何指定要运行哪个main呢?这里有两种方式。一种是在打包为jar时指定main,一种是运行jar时直接指定要运行的方法。方式一:打Jar包时指定这是一个项目的结构,我们想指定jar的main为‘LoadPrice’类,因为该类已经有Main方法,所以不需要再指定LoadPrice类的具体方法。在项目工程的pom文件中,通过packaging标签,指定其打包方式为jar.点击File —&

2021-06-05 12:54:52 12401 2

原创 windows下,将mysql数据库存放在不同的硬盘(盘符)并使用。

案例背景要实现大数据的插入,默认数据库的存储盘为机械硬盘,故插入速度效率较低。因此想要在将数据库建立在固态硬盘上,以此来提高插入效率。但问题是,如果通过更改my.ini配置文件来指定数据的存储路径的话,因为我们需要将原有的、存储在机械硬盘的数据都要迁移到这个路径,这将会很麻烦,而且会固态硬盘的存储空间本就不大。所以,我想mysql数据库能够映射到机械硬盘存储的数据信息,也能映射到在固态硬盘中存储的信息。实现该案例中,我的机械硬盘盘符为E,固态硬盘盘符为D。通过查看my.ini配置文件得知,数据

2021-05-19 11:21:30 3028

原创 跟乐乐学ES!(四) java中ElasticSearch客户端的使用。

准备数据一.创建招聘信息结构化索引# put:127.0.0.1:9200/recruitment{ "settings":{ "index":{ "number_of_shards":"5", "number_of_replicas":"0" } }, "mappings":{ "properties":{ "id":{ #id

2021-04-30 16:06:36 423 1

原创 es中,should的用法(以组合搜索做示例)

可以先参考这里:https://blog.csdn.net/wyqwilliam/article/details/84024182接下来以组合搜索时使用should条件来做演示。数据准备如下:创建索引:PUT http://127.0.0.1:9200/mytest/{ "settings": { "index": { "number_of_shards": "1", "number_of_replicas": "0" } }, "mappings"

2021-04-23 16:47:25 11434

原创 跟乐乐学ES!(三)ElasticSearch 批量操作与高级查询

准备数据:批量操作有些增删改查操作是可以进行批量操作的,以此来达到节省网络请求的目的。批量查询url后面加上 ‘_mget’POST方式:localhost:9200/索引名/类型名/_mget例如:{ "ids":["1","2","3"]}解释:批量查询类型中id为’1’和’2’的文档。结果:{ "docs": [ { "_index": "userinfo", "_type": "us",

2021-04-20 11:27:56 609

原创 跟乐乐学ES!(二)ElasticSearch基础。

es中的元数据(id,类型,索引)一、es中文档的元数据包括:1、_index(索引):它是单个数据库的同义词。索引(index)类似于关系型数据库里的数据库(database),事实上,我们的数据被存储和索引在分片(shards)中,索引只是把一个或多个分片分组在一起的逻辑空间,索引名字必须全部小写,不能以下划线开头,不能包含逗号。2、_type(类型):索引类型,它是单个数据表的同义词。类型(type)类似于关系型数据库中的table,在es中我们用type表示相同的‘事务’,每个类型(

2021-04-15 22:55:37 587

原创 跟乐乐学ES!(一)Windows环境安装ElasticSearch

参考:https://www.cnblogs.com/hualess/p/11540477.html下载https://www.elastic.co/cn/downloads/elasticsearch目前我所用的版本是7.12.0https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.12.0-windows-x86_64.zip运行ElasticSearch服务注意:ElasticSearch是基于lucen

2021-04-14 14:17:10 274

原创 SpringBatch 容错处理,跳过异常并记录异常数据

业务需求:读取txt文本数据,但是其中有几行的格式不符合分割规则那么这种情况下,如果读取时发生异常类型为空指针的异常,跳过该异常,并记录当前引发异常的数据。实现过程:1.skip层的skip()和skipLimit()方法skipLimit() 用于指定跳过该异常的最大次数,如超过1000次则不跳过。skip() 用于指定所要跳过的异常类型参考如下: @Bean public Step step1() { //这个版本不带数据处理校验规则

2021-04-13 18:30:55 2392 1

空空如也

空空如也

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

TA关注的人

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