@Bean public Repositories repositories(PackageScanClassResolver packageScanClassResolver) { Set<String> packages = packageScanClassResolver.detectPackagesToScan(basePackages); Set<Class<?>> allSubClasses = packageScanClassResolver .findImplementations(EntityPathWrapper.class, packages.toArray(new String[0])); return new Repositories(mapperFactoryBeans, allSubClasses); }
@Bean public Module module(PackageScanClassResolver packageScanClassResolver) { SimpleModule module = new SimpleModule(); Set<String> packages = packageScanClassResolver.detectPackagesToScan(basePackages); packages.add("cn.bestwu.simpleframework"); Set<Class<?>> allSubClasses = packageScanClassResolver .findImplementations(MixIn.class, packages.toArray(new String[0])); for (Class<?> aClass : allSubClasses) { ParameterizedType object = (ParameterizedType) aClass.getGenericInterfaces()[0]; Class targetType = (Class) object.getActualTypeArguments()[0]; if (log.isDebugEnabled()) { log.debug("Detected MixInAnnotation:{}=>{}", targetType, aClass); } module.setMixInAnnotation(targetType, aClass); } return module; }
@Bean public Module module(ApplicationContext applicationContext, PackageScanClassResolver packageScanClassResolver) { SimpleModule module = new SimpleModule(); Set<String> packages = PackageScanClassResolver .detectPackagesToScan(applicationContext, basePackages); packages.add("cn.bestwu.simpleframework.data.serializer"); Set<Class<?>> allSubClasses = packageScanClassResolver .findImplementations(MixIn.class, packages.toArray(new String[0])); for (Class<?> aClass : allSubClasses) { try { ParameterizedType object = (ParameterizedType) aClass.getGenericInterfaces()[0]; Class targetType = (Class) object.getActualTypeArguments()[0]; if (log.isDebugEnabled()) { log.debug("Detected MixInAnnotation:{}=>{}", targetType, aClass); } module.setMixInAnnotation(targetType, aClass); } catch (Exception e) { log.warn(aClass + "Detected fail", e); } } return module; }