当前位置: 首页 > news >正文

IOC - 自定义IOC容器

1、定义接口与实现类

// Service接口
public interface Service {void execute();
}
// Service的实现类
public class MyService implements Service {@Overridepublic void execute() {System.out.println("MyService 执行了.");}
}

2、自定义ioc容器以绑定接口与实现类

import java.util.HashMap;
import java.util.Map;public class IoCContainer {private Map<Class<?>, Object> components = new HashMap<>();public <T> void register(Class<T> componentClass, T component) {components.put(componentClass, component);}public <T> T resolve(Class<T> componentClass) {if (components.containsKey(componentClass)) {return (T) components.get(componentClass);} else {throw new RuntimeException("Component not found: " + componentClass.getName());}}
}

3.使用:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;//@SpringBootApplication
public class DemoLfsunStudyCustomiocApplication {//    public static void main(String[] args) {
//        SpringApplication.run(DemoLfsunStudyCustomiocApplication.class, args);
//    }public static void main(String[] args) {IoCContainer container = new IoCContainer();container.register(Service.class, new MyService());Service service = container.resolve(Service.class);service.execute();}
}

类似于之前IOC - Google Guice

http://www.lryc.cn/news/227905.html

相关文章:

  • 力扣第647题 回文子串 c++ 动态规划 双指针 附Java代码 注释解释版
  • 【Go入门】struct类型
  • 怎么改变容易紧张的性格?
  • 合作共赢 共克时艰
  • VCSA7许可证过期问题
  • 解决win11更新后,文件夹打不开的bug
  • 修复了数个Bug!
  • 设计模式之--原型模式(深浅拷贝)
  • Linux服务器从零开始训练 RT-DETR 改进项目 (Ultralytics) 教程,改进RTDETR算法(包括使用训练、验证、推理教程)
  • 矩阵理论--矩阵分解
  • go语言相关bug
  • Spring Cloud OpenFeign:基于Ribbon和Hystrix的声明式服务调用
  • 租用服务器带宽类型应用
  • SOLIDWORKS实用技巧之焊件轮廓应用
  • 本地浏览器全局翻译 demo 以火狐firefox为例【免费-简单】
  • 使用多线程处理List数据
  • Elasticsearch--Python使用、Django/Flask集成
  • pyspark将数据多次插入表的时候报错
  • Qt绘制饼状图
  • Vue3 setup函数
  • Django(三、数据的增删改查、Django生命周期流程图)
  • Linux 部署Sentinel控制台
  • 服务器如何下载百度网盘数据
  • POJ 3254 Corn Fields 状态压缩DP(铺砖问题)
  • transformers安装避坑
  • 牛客、赛码网OJ调试(全)
  • 【CSS】全局声明引入自定义字体
  • 「Flask」路由+视图函数
  • 信息系统项目管理师 教材目录、考试大纲、考情
  • python线性回归实现