嗨,我正在使用 Spring 3
我正在使用
applicationContext.getBeansOfType
是否有可能只获取当前范围内已经实例化的 bean?
我不想实例化当前请求中尚未使用的 Bean。
我认为不是,但你可以写一个,比如:
public static List<Object> getBeansInScope(Class<?> type, AbstractApplicationContext ctx, int scope) {
List<Object> beans = new ArrayList<Object>();
String[] names = ctx.getBeanNamesForType(type);
RequestAttributes attributes = RequestContextHolder.currentRequestAttributes();
for (String name : names) {
Object bean = attributes.getAttribute(name, scope);
if (bean != null)
beans.add(bean);
}
return beans;
}
这仅适用于请求和会话范围。