单例模式范例
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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新特性