我有一组课程如下。
public class ServiceA implements CommonInterface
{
public void startA()
{
....
}
}
public class ServiceB implements CommonInterface
{
public void startB()
{
....
}
}
Run Code Online (Sandbox Code Playgroud)
Spring框架中是否有任何方法可以仅自动注册实现 CommonInterface 到应用程序上下文的类并访问它们?
是的,这是可能的。如果您使用 Java 配置,则可以使用 @ComponetScan 将组件过滤为实现特定接口的组件。您需要禁用 Spring 使用的默认过滤器(基于检测构造型注释类,即 @Component 、 @Service 等)。
@Configuration
@ComponentScan(basePackages = {"com.mydomain.myapp.service"} , useDefaultFilters = false , includeFilters = {@Filter(type = FilterType.ASSIGNABLE_TYPE , value = CommonInterface.class)})
public class AppConfig{
//@Bean methods
}
Run Code Online (Sandbox Code Playgroud)
使用 context:component-scan 在 xml 中也可以实现相同的效果
| 归档时间: |
|
| 查看次数: |
1527 次 |
| 最近记录: |