spring 下扫描自定义注解并生成bean该如何做?
首先,定义扫描类
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Group {
/** group值 */
String value();
}
然后,编写扫描器
class GroupClassPathDefinitionScanner extends ClassPathBeanDefinitionScanner{
private Class type;
public GroupClassPathDefinitionScanner(BeanDefinitionRegistry registry, Class type){
super(registry, false);
this.type = type;
}
public void registerTypeFilter(){
addIncludeFilter(new AnnotationTypeFilter(type));
}
}
最后,实际使用
GenericApplicationContext context = new GenericApplicationContext();
GroupClassPathDefinitionScanner scanner = new GroupClassPathDefinitionScanner(context, Group.class);
scanner.registerTypeFilter();
scanner.scan(groupScanArea);
context.refresh();