双检锁单例模式实现 全局配置
/** * RPC 框架应用 * 相当于holder,存放了项目全局用到的变量。双检锁单例模式实现 * * @author nami404 * * @date 2024/6/26 21:41 */ @Slf4j public class RpcApplication { private static volatile RpcConfig rpcConfig; /** * 框架初始化,支持传入自定义配置 * * @param newRpcConfig */ public static void init(RpcConfig newRpcConfig) { rpcConfig = newRpcConfig; log.info("rpc init, config = {}", newRpcConfig.toString()); } /** * 初始化 */ public static void init() { RpcConfig newRpcConfig; try { newRpcConfig = ConfigUtils.loadConfig(RpcConfig.class, RpcConstant.DEFAULT_CONFIG_PREFIX); } catch (Exception e) { // 配置加载失败,使用默认值 newRpcConfig = new RpcConfig(); } init(newRpcConfig); } /** * 获取配置 * * @return */ public static RpcConfig getRpcConfig() { if (rpcConfig == null) { synchronized (RpcApplication.class) { if (rpcConfig == null) { init(); } } } return rpcConfig; } }
__EOF__

本文作者:techgy
本文链接:https://www.cnblogs.com/techgy/p/18270975.html
关于博主:I am a good person
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/techgy/p/18270975.html
关于博主:I am a good person
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~