spring 类扫描功能使用

1.支持扫描某个包下的所有类,进行处理。

private static final String MSG_PATH = "com.test.msg.http";
private static final String RESOURCE_PATH = "classpath*:" + StringUtils.replace(MSG_PATH, ".", "/") + "/*.class";
private Map funMap = new HashMap();
public void init() throws ServiceException {
logger.info("注册消息初始化开始");
ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
try {
Resource[] resources = resourcePatternResolver.getResources(RESOURCE_PATH);
MetadataReaderFactory metadataReaderFactory = new CachingMetadataReaderFactory(resourcePatternResolver);
for (Resource e : resources) {
MetadataReader metadataReader = metadataReaderFactory.getMetadataReader(e);
String clazzName = ClassUtils.getClass(metadataReader.getClassMetadata().getClassName()).getSimpleName();;
if (StringUtils.endsWith(clazzName, "C2S_Msg")) {
String funcName = StringUtils.uncapitalize(StringUtils.substringBefore(clazzName, "_"));
funMap.put(clazzName, funcName);
}
}
	

} catch (Exception e) {
throw new ServiceException(e);
}
logger.info("注册消息初始化完毕");
}
public String getFuncName(Object msg) {
		return funMap.get(msg.getClass().getSimpleName());
	}

 
  

你可能感兴趣的:(Java)