酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

Spring发现机制:轻松将实现同一接口的类注入到Map

在Spring中,我们可以使用`@ComponentScan`和`@Autowired`注解来实现这个功能。 首先,我们需要创建一个接口和一些实现这个接口的类: ```java public interface MyInterface { void doSomething(); } @Component("myImpl1") public class MyImpl1 implements MyInterface { @Override public void doSomething() { System.out.println("Doing something with MyImpl1"); } } @Component("myImpl2") public class MyImpl2 implements MyInterface { @Override public void doSomething() { System.out.println("Doing something with MyImpl2"); } } ``` 然后,我们可以在配置类中使用`@ComponentScan`注解来扫描包含这些类的包: ```java @Configuration @ComponentScan("com.example.myapp") public class AppConfig { // ... } ``` 接下来,我们可以创建一个类来存储这些实现类,并使用`@Autowired`注解来自动注入它们: ```java public class MyClass { private final Map<String, MyInterface> myInterfaceMap = new HashMap<>(); @Autowired public MyClass(@Qualifier("myImpl1") MyInterface myImpl1, @Qualifier("myImpl2") MyInterface myImpl2) { myInterfaceMap.put("myImpl1", myImpl1); myInterfaceMap.put("myImpl2", myImpl2); } // ... } ``` 在这个例子中,`@Qualifier`注解用于指定我们要注入哪个实现类。如果没有这个注解,Spring将会随机选择一个实现类进行注入。 ######[AI写代码神器 | 332点数解答 | 2023-11-22 10:12:10]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]