stripes spring annotation

stripes 源码阅读

stripes-code-1527-tags-1.5.6\stripes\src\net\sourceforge\stripes\integration\spring\SpringHelper.java



public static void injectBeans(Object bean, ApplicationContext ctx) {
// First inject any values using annotated methods
for (Method m : getMethods(bean.getClass())) {
try {
SpringBean springBean = m.getAnnotation(SpringBean.class);
boolean nameSupplied = !"".equals(springBean.value());
String name = nameSupplied ? springBean.value() : methodToPropertyName(m);
Class<?> beanType = m.getParameterTypes()[0];
Object managedBean = findSpringBean(ctx, name, beanType, !nameSupplied);
m.invoke(bean, managedBean);
}
catch (Exception e) {
throw new StripesRuntimeException("Exception while trying to lookup and inject " +
"a Spring bean into a bean of type " + bean.getClass().getSimpleName() +
" using method " + m.toString(), e);
}
}

// And then inject any properties that are annotated
for (Field f : getFields(bean.getClass())) {
try {
SpringBean springBean = f.getAnnotation(SpringBean.class);
boolean nameSupplied = !"".equals(springBean.value());
String name = nameSupplied ? springBean.value() : f.getName();
Object managedBean = findSpringBean(ctx, name, f.getType(), !nameSupplied);
f.set(bean, managedBean);
}
catch (Exception e) {
throw new StripesRuntimeException("Exception while trying to lookup and inject " +
"a Spring bean into a bean of type " + bean.getClass().getSimpleName() +
" using field access on field " + f.toString(), e);
}
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值