网站建设常用字体,公司装修办公楼,想建立什么网站吗,中建二局官网概述
ObjectProvider直译就是对象提供者;
平时从spring中获取bean都是调用beanFactory.getBean()方法#xff0c;如果bean不存在则会直接抛异常;
从spring 4.3开始引入了org.springframework.beans.factory.ObjectProvider接口,其提供了若干的方法#xff0c;可以更松散的…概述
ObjectProvider直译就是对象提供者;
平时从spring中获取bean都是调用beanFactory.getBean()方法如果bean不存在则会直接抛异常;
从spring 4.3开始引入了org.springframework.beans.factory.ObjectProvider接口,其提供了若干的方法可以更松散的获取bean.
BeanFactory中也有定义返回值是ObjectProvider的相关方法;
ObjectProvider方法解释
直接引用一波网上现成的翻译
public interface ObjectProviderT extends ObjectFactoryT, IterableT {// 返回指定类型的bean, 如果容器中不存在, 抛出NoSuchBeanDefinitionException异常// 如果容器中有多个此类型的bean, 抛出NoUniqueBeanDefinitionException异常T getObject(Object... args) throws BeansException;// 如果指定类型的bean注册到容器中, 返回 bean 实例, 否则返回 nullNullableT getIfAvailable() throws BeansException;// 如果返回对象不存在则进行回调回调对象由Supplier传入default T getIfAvailable(SupplierT defaultSupplier) throws BeansException {T dependency getIfAvailable();return (dependency ! null ? dependency : defaultSupplier.get());}// 消费对象的一个实例可能是共享的或独立的如果存在通过Consumer回调消耗目标对象。default void ifAvailable(ConsumerT dependencyConsumer) throws BeansException {T dependency getIfAvailable();if (dependency ! null) {dependencyConsumer.accept(dependency);}}// 如果不可用或不唯一没有指定primary则返回null。否则返回对象。NullableT getIfUnique() throws BeansException;// 如果存在唯一对象则调用Supplier的回调函数default T getIfUnique(SupplierT defaultSupplier) throws BeansException {T dependency getIfUnique();return (dependency ! null ? dependency : defaultSupplier.get());}// 如果存在唯一对象则消耗掉该对象default void ifUnique(ConsumerT dependencyConsumer) throws BeansException {T dependency getIfUnique();if (dependency ! null) {dependencyConsumer.accept(dependency);}}// 返回符合条件的对象的Iterator没有特殊顺序保证一般为注册顺序Overridedefault IteratorT iterator() {return stream().iterator();}// 返回符合条件对象的连续的Stream没有特殊顺序保证一般为注册顺序default StreamT stream() {throw new UnsupportedOperationException(Multi element access not supported);}// 返回符合条件对象的连续的Stream。在标注Spring应用上下文中采用Order注解或实现Order接口的顺序default StreamT orderedStream() {throw new UnsupportedOperationException(Ordered element access not supported);}
}参考文章 https://www.cnblogs.com/secbro/p/11974729.html