GLUE依赖注入逻辑优化,支持别名注入;from:shirokumacafe@github
This commit is contained in:
parent
d95277dfa5
commit
4cf65ebdb2
|
@ -709,6 +709,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
|
||||||
- 5、升级数据库连接池c3p0版本;
|
- 5、升级数据库连接池c3p0版本;
|
||||||
- 6、执行器log4j配置优化,去除无效属性;
|
- 6、执行器log4j配置优化,去除无效属性;
|
||||||
- 7、底层代码重构和逻辑优化以及CleanCode;
|
- 7、底层代码重构和逻辑优化以及CleanCode;
|
||||||
|
- 8、GLUE依赖注入逻辑优化,支持别名注入;
|
||||||
|
|
||||||
|
|
||||||
#### 规划中
|
#### 规划中
|
||||||
|
|
|
@ -8,6 +8,7 @@ import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.BeansException;
|
import org.springframework.beans.BeansException;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.context.ApplicationContextAware;
|
import org.springframework.context.ApplicationContextAware;
|
||||||
import org.springframework.core.annotation.AnnotationUtils;
|
import org.springframework.core.annotation.AnnotationUtils;
|
||||||
|
@ -76,14 +77,24 @@ public class GlueFactory implements ApplicationContextAware {
|
||||||
// with bean-id, bean could be found by both @Resource and @Autowired, or bean could only be found by @Autowired
|
// with bean-id, bean could be found by both @Resource and @Autowired, or bean could only be found by @Autowired
|
||||||
if (AnnotationUtils.getAnnotation(field, Resource.class) != null) {
|
if (AnnotationUtils.getAnnotation(field, Resource.class) != null) {
|
||||||
try {
|
try {
|
||||||
fieldBean = applicationContext.getBean(field.getName());
|
Resource resource = AnnotationUtils.getAnnotation(field, Resource.class);
|
||||||
|
if (resource.name()!=null && resource.name().length()>0){
|
||||||
|
fieldBean = applicationContext.getBean(resource.name());
|
||||||
|
} else {
|
||||||
|
fieldBean = applicationContext.getBean(field.getName());
|
||||||
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
}
|
}
|
||||||
if (fieldBean==null ) {
|
if (fieldBean==null ) {
|
||||||
fieldBean = applicationContext.getBean(field.getType());
|
fieldBean = applicationContext.getBean(field.getType());
|
||||||
}
|
}
|
||||||
} else if (AnnotationUtils.getAnnotation(field, Autowired.class) != null) {
|
} else if (AnnotationUtils.getAnnotation(field, Autowired.class) != null) {
|
||||||
fieldBean = applicationContext.getBean(field.getType());
|
Qualifier qualifier = AnnotationUtils.getAnnotation(field, Qualifier.class);
|
||||||
|
if (qualifier!=null && qualifier.value()!=null && qualifier.value().length()>0) {
|
||||||
|
fieldBean = applicationContext.getBean(qualifier.value());
|
||||||
|
} else {
|
||||||
|
fieldBean = applicationContext.getBean(field.getType());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fieldBean!=null) {
|
if (fieldBean!=null) {
|
||||||
|
|
Loading…
Reference in New Issue