Spring-MetadataReader接口

作用:对一个类的各种元数据都封装成一个MetadataReader对象,以下是获取MetadataReader对象的方式之一

public static void main(String[] args) throws IOException, ClassNotFoundException {
		Set candidates = new LinkedHashSet<>();
		
		ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();  
		Resource[] resources = resourcePatternResolver.getResources("classpath*:com/my/*/*.**");  
		
		MetadataReaderFactory metadata=new SimpleMetadataReaderFactory();
		for(Resource resource:resources) {
			MetadataReader metadataReader=metadata.getMetadataReader(resource);
			ScannedGenericBeanDefinition sbd = new ScannedGenericBeanDefinition(metadataReader);
			sbd.setResource(resource);
			sbd.setSource(resource);
			candidates.add(sbd);
		}
		for(BeanDefinition beanDefinition : candidates) {  
			String classname=beanDefinition.getBeanClassName();
			Controller c=Class.forName(classname).getAnnotation(Controller.class);
			Service s=Class.forName(classname).getAnnotation(Service.class);
			Component component=Class.forName(classname).getAnnotation(Component.class);
			if(c!=null ||s!=null ||component!=null)
			System.out.println(classname);
		} 
		
	}

你可能感兴趣的:(Spring)