news 2026/5/1 4:34:35

(强烈推荐)不用Spring的Autowire且能看出依赖关系的写法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
(强烈推荐)不用Spring的Autowire且能看出依赖关系的写法

背景:java游戏服务器,其实很多时候,都是不用SpringBoot这个东西,而是全程自己管理整个项目,这时想看清楚依赖关系,就可以采用下面的方式。

1)单例管理

package com.example.demo.util; import java.util.LinkedHashMap; import java.util.Map; public class SingletonManager { private static final Map<Class<?>, Object> singletons = new LinkedHashMap<>(); public static <T> T getIns(Class<T> clz) { Object single = singletons.get(clz); if (single == null) { try { single = init(clz); } catch (Exception e) { e.printStackTrace(); } } return (T) single; } public static Object init(Class<?> clz) throws Exception { if (singletons.get(clz) == null) { Object ins = clz.newInstance(); singletons.put(clz, ins); return ins; } return null; } }

2)A

package com.example.demo.service; import com.example.demo.util.SingletonManager; public class AService { private BService bService; public static AService getInstance() { return SingletonManager.getIns(AService.class); } public void init() { bService = BService.getInstance(); } public void a() { System.out.println("a" + bService.b()); } public String aa(){ return "aa"; } } /* ab */

3)B

package com.example.demo.service; import com.example.demo.util.SingletonManager; public class BService { private AService aService; public static BService getInstance() { return SingletonManager.getIns(BService.class); } public void init() { aService = AService.getInstance(); } public String b(){ return "b" + aService.aa(); } }

4)Main

package com.example.demo; import com.example.demo.service.AService; import com.example.demo.service.BService; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); AService aService = AService.getInstance(); aService.init(); BService bService = BService.getInstance(); bService.init(); // 打印 aService.a(); } } /* abaa */
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:09:46

百度网盘提取码智能获取工具:告别繁琐搜索的终极指南

百度网盘提取码智能获取工具&#xff1a;告别繁琐搜索的终极指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为百度网盘提取码而苦恼吗&#xff1f;每次获得分享链接后都要花费大量时间在原页面寻找那串神秘代码&…

作者头像 李华
网站建设 2026/4/30 17:12:02

Kimi Linear架构革新:重新定义大模型长文本处理效率与性能边界

在人工智能大模型领域&#xff0c;注意力机制一直是制约模型性能与效率的关键瓶颈。传统全注意力架构在处理长文本时面临计算复杂度高、内存占用大等问题&#xff0c;而近期推出的Kimi Linear混合线性注意力架构&#xff0c;通过创新性的设计突破了这一困境。该架构在短文本、长…

作者头像 李华
网站建设 2026/5/1 3:23:29

9合1喝酒聚会全能娱乐微信小程序源码

从摇骰子到人生重启模拟器&#xff0c;一款小程序满足所有聚会娱乐需求&#xff0c;广告变现代码保护全方案还在为朋友聚会时找不到好玩的互动游戏而发愁吗&#xff1f;今天给大家分享一款专为喝酒、聚会场景设计的微信小程序&#xff01;这个小程序集成了9大核心娱乐功能&…

作者头像 李华
网站建设 2026/5/1 5:54:11

百度网盘提取码智能获取工具完整使用指南

百度网盘提取码智能获取工具完整使用指南 【免费下载链接】baidupankey 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 还在为繁琐的百度网盘提取码而困扰吗&#xff1f;每次获取分享资源都要经历复制链接、寻找提取码、手动输入的重复过程&#xff0c;这种…

作者头像 李华
网站建设 2026/5/1 5:53:46

你,宇宙唯一的中心:在无限复刻中活出绝对的存在

你&#xff0c;宇宙唯一的中心&#xff1a;在无限复刻中活出绝对的存在 一、宣言&#xff1a;你的坐标是(0,0,0) 此刻&#xff0c;当你阅读这些文字时&#xff0c;请暂停一秒——无论你身处拥挤的地铁、深夜的书房&#xff0c;还是异国街头的咖啡馆——请深深地感受&#xff1a…

作者头像 李华