@Bean public AnnotationBean annotationBean() { AnnotationBean annotationBean = new AnnotationBean(); annotationBean.setPackage(ANNOTATION_PACKAGE); return annotationBean; } }
@Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { super.setApplicationContext(applicationContext); this.applicationContext = applicationContext; }
private boolean isMatchPackage(Object bean) { if (annotationPackages == null || annotationPackages.length == 0) { return true; } Class clazz = bean.getClass(); if(isProxyBean(bean)){ clazz = AopUtils.getTargetClass(bean); } String beanClassName = clazz.getName(); for (String pkg : annotationPackages) { if (beanClassName.startsWith(pkg)) { return true; } } return false; }
@Override public void initialize(ConfigurableApplicationContext applicationContext) { this.applicationContext = applicationContext; Environment env = applicationContext.getEnvironment(); String scan = env.getProperty("spring.dubbo.scan"); if (scan != null) { AnnotationBean scanner = (AnnotationBean) registerAndInstance(scan); scanner.setPackage(scan); scanner.setApplicationContext(applicationContext); applicationContext.addBeanFactoryPostProcessor(scanner); } }
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (! isMatchPackage(bean)) { return bean; if(isProxyBean(bean)){ clazz = AopUtils.getTargetClass(bean); Reference reference = method.getAnnotation(Reference.class); if (reference != null) { Object value = refer(reference, method.getParameterTypes()[0]); if (value != null) { method.invoke(bean, new Object[] { value }); Object value = refer(reference, field.getType()); if (value != null) { field.set(bean, value);
@Override public void setPackage(String annotationPackage) { super.setPackage(annotationPackage); this.annotationPackage = annotationPackage; }
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (! isMatchPackage(bean)) { return bean; if(isProxyBean(bean)){ clazz = AopUtils.getTargetClass(bean);
@Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (!isMatchPackage(bean)) { return bean; Reference reference = method.getAnnotation(Reference.class); if (reference != null) { Object value = refer(reference, method.getParameterTypes()[0]); if (value != null) { method.invoke(bean, value); Object value = refer(reference, field.getType()); if (value != null) { field.set(bean, value);
@Override public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (!isMatchPackage(bean)) { return bean;
@Override public void initialize(ConfigurableApplicationContext applicationContext) { Environment env = applicationContext.getEnvironment(); String scan = env.getProperty("spring.dubbo.scan"); if (scan != null) { AnnotationBean scanner = BeanUtils.instantiate(AnnotationBean.class); scanner.setPackage(scan); scanner.setApplicationContext(applicationContext); applicationContext.addBeanFactoryPostProcessor(scanner); applicationContext.getBeanFactory().addBeanPostProcessor(scanner); applicationContext.getBeanFactory().registerSingleton("annotationBean", scanner); } }
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (! isMatchPackage(bean)) { return bean; if(isProxyBean(bean)){ clazz = AopUtils.getTargetClass(bean); Reference reference = method.getAnnotation(Reference.class); if (reference != null) { Object value = refer(reference, method.getParameterTypes()[0]); if (value != null) { method.invoke(bean, new Object[] { value }); Object value = refer(reference, field.getType()); if (value != null) { field.set(bean, value);
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { if (! isMatchPackage(bean)) { return bean; if(isProxyBean(bean)){ clazz = AopUtils.getTargetClass(bean);
@Override public void initialize(ConfigurableApplicationContext applicationContext) { Environment env = applicationContext.getEnvironment(); String scan = env.getProperty("spring.dubbo.scan"); if (scan != null) { AnnotationBean scanner = BeanUtils.instantiate(AnnotationBean.class); scanner.setPackage(scan); scanner.setApplicationContext(applicationContext); applicationContext.addBeanFactoryPostProcessor(scanner); applicationContext.getBeanFactory().addBeanPostProcessor(scanner); applicationContext.getBeanFactory().registerSingleton("annotationBean", scanner); } }
@Bean public static AnnotationBean annotationBean(@Value("${dubbo.annotation.package}") String packageName) { AnnotationBean annotationBean = new AnnotationBean(); annotationBean.setPackage(packageName); log.debug("[DubboAutoConfiguration] {}", packageName); return annotationBean; }
private boolean isMatchPackage(Object bean) { if (annotationPackages == null || annotationPackages.length == 0) { return true; } Class clazz = bean.getClass(); if(isProxyBean(bean)){ clazz = AopUtils.getTargetClass(bean); } String beanClassName = clazz.getName(); for (String pkg : annotationPackages) { if (beanClassName.startsWith(pkg)) { return true; } } return false; }