单例模式范例

复制代码
 1 package util;
 2 import org.web3j.protocol.geth.Geth;
 3 import org.web3j.protocol.http.HttpService;
 4 
 5 public class GethClientUtil {
 6 
 7     private volatile static Geth geth;
 8 
 9     public static Geth getClient() {
10         if (geth == null) {
11             synchronized (GethClientUtil.class) {
12                 if (geth == null) {
13                     try {
14                         geth = Geth.build(new HttpService(PropUtil.getProps().getProperty("RPC_ADDR")));
15                     } catch (Exception e) {
16                         e.printStackTrace();
17                     }
18                 }
19             }
20         }
21         return geth;
22     }
23 
24 }
复制代码

 配置文件工具类

复制代码
 1 package util;
 2 
 3 import java.io.InputStream;
 4 import java.util.Properties;
 5 
 6 public class PropUtil {
 7 
 8     private static Properties props = null;
 9     
10     static {
11         readProperties("ether.properties");
12     }
13     
14     private static void readProperties(String fileName) {    
15         try {    
16             props = new Properties();
17             InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
18             props.load(inputStream);
19             inputStream.close();
20         } catch (Exception e) {    
21             e.printStackTrace();    
22         }    
23     } 
24     
25     public static Properties getProps() {
26         return props;
27     }
28     
29 }
复制代码

配置文件

复制代码
1 #调用RPC地址
2 RPC_ADDR=http://127.0.0.1:8545
3 #矿工费参数
4 GAS_PRICE=22000000000
5 GAS_LIMIT=4300000
6 #私钥文件存储路径
7 KEYSTORE_PATH=E:/Project/TestGeth/keystore
复制代码

 

posted @   光何  阅读(290)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2017-05-03 ES6新特性

点击右上角即可分享
微信分享提示