Ale*_* Ya 6 java inheritance spring
我有一个类的层次结构.我想用@Component标记它们.我试图只标记父类.我希望Spring也将孩子视为组件.但它不会发生.
我尝试使用这里@InheritedComponent描述的自定义注释.它不起作用.
我写了一个单元测试.它失败了:"No qualifying bean of type 'bean.inherit.component.Child' available".Spring版本是4.3.7.
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Component
@Inherited
public @interface InheritedComponent {}
@InheritedComponent
class Parent { }
class Child extends Parent {
}
@Configuration
@ComponentScan(basePackages = "bean.inherit.component")
class Config {
}
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = Config.class)
public class InheritComponentTest {
@Autowired
private Child child;
@Test
public void name() throws Exception {
assertNotNull(child);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用ComponentScan.Filter.
@ComponentScan(basePackages = "bean.inherit.component",
includeFilters = @ComponentScan.Filter(InheritedComponent.class))
Run Code Online (Sandbox Code Playgroud)
这将允许Spring自动装配您的Child,而无需您直接将注释附加到Child.
| 归档时间: |
|
| 查看次数: |
5109 次 |
| 最近记录: |