下面列出了org.springframework.beans.factory.ListableBeanFactory#getBeansOfType ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private MeterRegistryConfigurer getConfigurer() {
if (this.configurer == null) {
Collection<MeterBinder> meterBinders = Collections.emptyList();
Collection<MeterFilter> meterFilters = Collections.emptyList();
Collection<MeterRegistryCustomizer<?>> meterRegistryCustomizers = Collections.emptyList();
MetricsProperties properties = beanFactory.getBean(MetricsProperties.class);
if (beanFactory instanceof ListableBeanFactory) {
ListableBeanFactory listableBeanFactory = (ListableBeanFactory)beanFactory;
meterBinders = listableBeanFactory.getBeansOfType(MeterBinder.class).values();
meterFilters = listableBeanFactory.getBeansOfType(MeterFilter.class).values();
Map<String, MeterRegistryCustomizer> map = listableBeanFactory.getBeansOfType(MeterRegistryCustomizer.class);
meterRegistryCustomizers = new ArrayList<>();
for(MeterRegistryCustomizer c : map.values()) {
meterRegistryCustomizers.add(c);
}
}
this.configurer = new MeterRegistryConfigurer(
meterBinders,
meterFilters,
meterRegistryCustomizers, properties.isUseGlobalRegistry());
}
return this.configurer;
}
private MeterRegistryConfigurer getConfigurer() {
if (this.configurer == null) {
Collection<MeterBinder> meterBinders = Collections.emptyList();
Collection<MeterFilter> meterFilters = Collections.emptyList();
Collection<MeterRegistryCustomizer<?>> meterRegistryCustomizers = Collections.emptyList();
MetricsProperties properties = beanFactory.getBean(MetricsProperties.class);
if (beanFactory instanceof ListableBeanFactory) {
ListableBeanFactory listableBeanFactory = (ListableBeanFactory)beanFactory;
meterBinders = listableBeanFactory.getBeansOfType(MeterBinder.class).values();
meterFilters = listableBeanFactory.getBeansOfType(MeterFilter.class).values();
Map<String, MeterRegistryCustomizer> map = listableBeanFactory.getBeansOfType(MeterRegistryCustomizer.class);
meterRegistryCustomizers = new ArrayList<>();
for(MeterRegistryCustomizer c : map.values()) {
meterRegistryCustomizers.add(c);
}
}
this.configurer = new MeterRegistryConfigurer(
meterBinders,
meterFilters,
meterRegistryCustomizers, properties.isUseGlobalRegistry());
}
return this.configurer;
}
public static <T> ObjectProvider<Map<String, T>> map(ListableBeanFactory beans,
Class<T> type) {
return new ObjectProvider<Map<String, T>>() {
@Override
public Map<String, T> getObject() throws BeansException {
return beans.getBeansOfType(type);
}
@Override
public Map<String, T> getObject(Object... args) throws BeansException {
return getObject();
}
@Override
public Map<String, T> getIfAvailable() throws BeansException {
return getObject();
}
@Override
public Map<String, T> getIfUnique() throws BeansException {
return getObject();
}
};
}
private static void lookupCollectionByType(BeanFactory beanFactory) {
if (beanFactory instanceof ListableBeanFactory) {
ListableBeanFactory listableBeanFactory = (ListableBeanFactory) beanFactory;
Map<String, User> users = listableBeanFactory.getBeansOfType(User.class);
System.out.println("查找到的所有的 User 集合对象:" + users);
}
}
private static void lookupCollectionByType(BeanFactory beanFactory) {
if (beanFactory instanceof ListableBeanFactory) {
ListableBeanFactory listableBeanFactory = (ListableBeanFactory) beanFactory;
Map<String, User> users = listableBeanFactory.getBeansOfType(User.class);
System.out.println("查找到的所有的 User 集合对象:" + users);
}
}
private static void lookupCollectionByType(BeanFactory beanFactory) {
if (beanFactory instanceof ListableBeanFactory) {
ListableBeanFactory listableBeanFactory = (ListableBeanFactory) beanFactory;
Map<String, User> users = listableBeanFactory.getBeansOfType(User.class);
System.out.println("查找到的所有的 User 集合对象:" + users);
}
}
public <T> Map<String, T> collectToOrderedMap(ListableBeanFactory beanFactory, Class<T> clazz, List<T> orderedBeans) {
Map<String, T> beansOfType = beanFactory.getBeansOfType(clazz);
return orderedBeans.stream()
.collect(toMap(
bean -> buildKey(beansOfType, bean),
identity(),
this::mergeBeans,
LinkedHashMap::new
));
}
private PropertySourcesPlaceholderConfigurer getSinglePropertySourcesPlaceholderConfigurer(DefaultListableBeanFactory beanFactory) {
if (beanFactory instanceof ListableBeanFactory) {
ListableBeanFactory listableBeanFactory = (ListableBeanFactory) beanFactory;
Map<String, PropertySourcesPlaceholderConfigurer> beans = listableBeanFactory
.getBeansOfType(PropertySourcesPlaceholderConfigurer.class, false,
false);
if (beans.size() == 1) {
return beans.values().iterator().next();
}
}
return null;
}
/**
* Will ignore scoped proxy target bean names. https://github.com/ocpsoft/rewrite/issues/170
*
* @param beanFactory bean factory
* @param clazz type
* @return set of bean names
*/
private Set<String> resolveBeanNames(ListableBeanFactory beanFactory, Class<?> clazz) {
final Set<String> result = new HashSet<String>();
Map<String, ?> beanMap = beanFactory.getBeansOfType(clazz);
for (String name : beanMap.keySet()) {
if (name != null && !name.startsWith("scopedTarget.")) {
result.add(name);
}
}
return result;
}
@SuppressWarnings({"rawtypes"})
private static Map<Class<?>, EntityResolver<?, ?>> loadEntityResolvers(
ListableBeanFactory beanFactory) {
Map<String, EntityResolver> entityServices = beanFactory.getBeansOfType(EntityResolver.class);
Map<Class<?>, EntityResolver<?, ?>> entity2Resolver = new HashMap<>(entityServices.size());
for (EntityResolver entityResolver : entityServices.values()) {
entity2Resolver.put(entityResolver.getEntityType(), entityResolver);
}
return entity2Resolver;
}