org.springframework.context.annotation.AnnotationConfigApplicationContext#getBeanProvider ( )源码实例Demo

下面列出了org.springframework.context.annotation.AnnotationConfigApplicationContext#getBeanProvider ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: geekbang-lessons   文件: ObjectProviderDemo.java
private static void lookupByStreamOps(AnnotationConfigApplicationContext applicationContext) {
        ObjectProvider<String> objectProvider = applicationContext.getBeanProvider(String.class);
//        Iterable<String> stringIterable = objectProvider;
//        for (String string : stringIterable) {
//            System.out.println(string);
//        }
        // Stream -> Method reference
        objectProvider.stream().forEach(System.out::println);
    }
 
源代码2 项目: geekbang-lessons   文件: ObjectProviderDemo.java
private static void lookupIfAvailable(AnnotationConfigApplicationContext applicationContext) {
    ObjectProvider<User> userObjectProvider = applicationContext.getBeanProvider(User.class);
    User user = userObjectProvider.getIfAvailable(User::createUser);
    System.out.println("当前 User 对象:" + user);
}
 
源代码3 项目: geekbang-lessons   文件: ObjectProviderDemo.java
private static void lookupByObjectProvider(AnnotationConfigApplicationContext applicationContext) {
    ObjectProvider<String> objectProvider = applicationContext.getBeanProvider(String.class);
    System.out.println(objectProvider.getObject());
}
 
private static void displayObjectProviderStreamOps(AnnotationConfigApplicationContext applicationContext) {
    ObjectProvider<User> userObjectProvider = applicationContext.getBeanProvider(User.class);
    printBeansException("displayObjectProviderStreamOps", () -> userObjectProvider.forEach(System.out::println));
}
 
private static void displayObjectProviderIfAvailable(AnnotationConfigApplicationContext applicationContext) {
    ObjectProvider<User> userObjectProvider = applicationContext.getBeanProvider(User.class);
    printBeansException("displayObjectProviderIfAvailable", () -> userObjectProvider.getIfAvailable());
}
 
private static void displayObjectFactoryGetObject(AnnotationConfigApplicationContext applicationContext) {
    // ObjectProvider is ObjectFactory
    ObjectFactory<User> userObjectFactory = applicationContext.getBeanProvider(User.class);
    printBeansException("displayObjectFactoryGetObject", () -> userObjectFactory.getObject());
}
 
public <T> ObjectProvider<T> getProvider(String name, Class<T> type) {
	AnnotationConfigApplicationContext context = getContext(name);
	return context.getBeanProvider(type);
}