类org.hibernate.resource.beans.spi.BeanInstanceProducer源码实例Demo

下面列出了怎么用org.hibernate.resource.beans.spi.BeanInstanceProducer的API类实例代码及写法,或者点击链接到github查看源代码。

@Override
@SuppressWarnings("unchecked")
public <B> ContainedBean<B> getBean(
		Class<B> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	SpringContainedBean<?> bean;
	if (lifecycleOptions.canUseCachedReferences()) {
		bean = this.beanCache.get(beanType);
		if (bean == null) {
			bean = createBean(beanType, lifecycleOptions, fallbackProducer);
			this.beanCache.put(beanType, bean);
		}
	}
	else {
		bean = createBean(beanType, lifecycleOptions, fallbackProducer);
	}
	return (SpringContainedBean<B>) bean;
}
 
@Override
@SuppressWarnings("unchecked")
public <B> ContainedBean<B> getBean(
		String name, Class<B> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	SpringContainedBean<?> bean;
	if (lifecycleOptions.canUseCachedReferences()) {
		bean = this.beanCache.get(name);
		if (bean == null) {
			bean = createBean(name, beanType, lifecycleOptions, fallbackProducer);
			this.beanCache.put(name, bean);
		}
	}
	else {
		bean = createBean(name, beanType, lifecycleOptions, fallbackProducer);
	}
	return (SpringContainedBean<B>) bean;
}
 
@Override
@SuppressWarnings("unchecked")
public <B> ContainedBean<B> getBean(
		Class<B> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	SpringContainedBean<?> bean;
	if (lifecycleOptions.canUseCachedReferences()) {
		bean = this.beanCache.get(beanType);
		if (bean == null) {
			bean = createBean(beanType, lifecycleOptions, fallbackProducer);
			this.beanCache.put(beanType, bean);
		}
	}
	else {
		bean = createBean(beanType, lifecycleOptions, fallbackProducer);
	}
	return (SpringContainedBean<B>) bean;
}
 
@Override
@SuppressWarnings("unchecked")
public <B> ContainedBean<B> getBean(
		String name, Class<B> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	SpringContainedBean<?> bean;
	if (lifecycleOptions.canUseCachedReferences()) {
		bean = this.beanCache.get(name);
		if (bean == null) {
			bean = createBean(name, beanType, lifecycleOptions, fallbackProducer);
			this.beanCache.put(name, bean);
		}
	}
	else {
		bean = createBean(name, beanType, lifecycleOptions, fallbackProducer);
	}
	return (SpringContainedBean<B>) bean;
}
 
private SpringContainedBean<?> createBean(
		Class<?> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	try {
		if (lifecycleOptions.useJpaCompliantCreation()) {
			return new SpringContainedBean<>(
					this.beanFactory.createBean(beanType, AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, false),
					this.beanFactory::destroyBean);
		}
		else {
			return new SpringContainedBean<>(this.beanFactory.getBean(beanType));
		}
	}
	catch (BeansException ex) {
		if (logger.isDebugEnabled()) {
			logger.debug("Falling back to Hibernate's default producer after bean creation failure for " +
					beanType + ": " + ex);
		}
		return new SpringContainedBean<>(fallbackProducer.produceBeanInstance(beanType));
	}
}
 
private SpringContainedBean<?> createBean(
		String name, Class<?> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	try {
		if (lifecycleOptions.useJpaCompliantCreation()) {
			Object bean = this.beanFactory.autowire(beanType, AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, false);
			this.beanFactory.autowireBeanProperties(bean, AutowireCapableBeanFactory.AUTOWIRE_NO, false);
			this.beanFactory.applyBeanPropertyValues(bean, name);
			bean = this.beanFactory.initializeBean(bean, name);
			return new SpringContainedBean<>(bean, beanInstance -> this.beanFactory.destroyBean(name, beanInstance));
		}
		else {
			return new SpringContainedBean<>(this.beanFactory.getBean(name, beanType));
		}
	}
	catch (BeansException ex) {
		if (logger.isDebugEnabled()) {
			logger.debug("Falling back to Hibernate's default producer after bean creation failure for " +
					beanType + ": " + ex);
		}
		return new SpringContainedBean<>(fallbackProducer.produceBeanInstance(name, beanType));
	}
}
 
源代码7 项目: lams   文件: AbstractCdiBeanContainer.java
@SuppressWarnings("unchecked")
private <B> ContainedBean<B> getCacheableBean(
		Class<B> beanType,
		LifecycleOptions lifecycleOptions,
		BeanInstanceProducer fallbackProducer) {
	final String beanCacheKey = Helper.INSTANCE.determineBeanCacheKey( beanType );

	final ContainedBeanImplementor existing = beanCache.get( beanCacheKey );
	if ( existing != null ) {
		return existing;
	}

	final ContainedBeanImplementor bean = createBean( beanType, lifecycleOptions, fallbackProducer );
	beanCache.put( beanCacheKey, bean );
	return bean;
}
 
源代码8 项目: lams   文件: AbstractCdiBeanContainer.java
@SuppressWarnings("unchecked")
private <B> ContainedBeanImplementor<B> getCacheableBean(
		String beanName,
		Class<B> beanType,
		LifecycleOptions lifecycleOptions,
		BeanInstanceProducer fallbackProducer) {
	final String beanCacheKey = Helper.INSTANCE.determineBeanCacheKey( beanName, beanType );

	final ContainedBeanImplementor existing = beanCache.get( beanCacheKey );
	if ( existing != null ) {
		return existing;
	}

	final ContainedBeanImplementor bean = createBean( beanName, beanType, lifecycleOptions, fallbackProducer );
	beanCache.put( beanCacheKey, bean );
	return bean;
}
 
源代码9 项目: lams   文件: AbstractCdiBeanContainer.java
@SuppressWarnings("unchecked")
private <B> ContainedBeanImplementor<B> createBean(
		String beanName,
		Class<B> beanType,
		LifecycleOptions lifecycleOptions,
		BeanInstanceProducer fallbackProducer) {
	final ContainedBeanImplementor bean = createBean(
			beanName,
			beanType,
			lifecycleOptions.useJpaCompliantCreation()
					? JpaCompliantLifecycleStrategy.INSTANCE
					: ContainerManagedLifecycleStrategy.INSTANCE,
			fallbackProducer
	);
	registeredBeans.add( bean );
	return bean;
}
 
源代码10 项目: lams   文件: CdiBeanContainerExtendedAccessImpl.java
@Override
protected <B> ContainedBeanImplementor<B> createBean(
		String name,
		Class<B> beanType,
		BeanLifecycleStrategy lifecycleStrategy,
		BeanInstanceProducer fallbackProducer) {
	if ( usableBeanManager == null ) {
		return new NamedBeanImpl<>(
				name,
				beanType,
				lifecycleStrategy,
				fallbackProducer
		);
	}
	else {
		return lifecycleStrategy.createBean( name, beanType, fallbackProducer, this );
	}
}
 
源代码11 项目: spring-analysis-note   文件: SpringBeanContainer.java
private SpringContainedBean<?> createBean(
		Class<?> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	try {
		if (lifecycleOptions.useJpaCompliantCreation()) {
			return new SpringContainedBean<>(
					this.beanFactory.createBean(beanType, AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, false),
					this.beanFactory::destroyBean);
		}
		else {
			return new SpringContainedBean<>(this.beanFactory.getBean(beanType));
		}
	}
	catch (BeansException ex) {
		if (logger.isDebugEnabled()) {
			logger.debug("Falling back to Hibernate's default producer after bean creation failure for " +
					beanType + ": " + ex);
		}
		try {
			return new SpringContainedBean<>(fallbackProducer.produceBeanInstance(beanType));
		}
		catch (RuntimeException ex2) {
			if (ex instanceof BeanCreationException) {
				if (logger.isDebugEnabled()) {
					logger.debug("Fallback producer failed for " + beanType + ": " + ex2);
				}
				// Rethrow original Spring exception from first attempt.
				throw ex;
			}
			else {
				// Throw fallback producer exception since original was probably NoSuchBeanDefinitionException.
				throw ex2;
			}
		}
	}
}
 
源代码12 项目: spring-analysis-note   文件: SpringBeanContainer.java
private SpringContainedBean<?> createBean(
		String name, Class<?> beanType, LifecycleOptions lifecycleOptions, BeanInstanceProducer fallbackProducer) {

	try {
		if (lifecycleOptions.useJpaCompliantCreation()) {
			Object bean = this.beanFactory.autowire(beanType, AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, false);
			this.beanFactory.autowireBeanProperties(bean, AutowireCapableBeanFactory.AUTOWIRE_NO, false);
			this.beanFactory.applyBeanPropertyValues(bean, name);
			bean = this.beanFactory.initializeBean(bean, name);
			return new SpringContainedBean<>(bean, beanInstance -> this.beanFactory.destroyBean(name, beanInstance));
		}
		else {
			return new SpringContainedBean<>(this.beanFactory.getBean(name, beanType));
		}
	}
	catch (BeansException ex) {
		if (logger.isDebugEnabled()) {
			logger.debug("Falling back to Hibernate's default producer after bean creation failure for " +
					beanType + " with name '" + name + "': " + ex);
		}
		try {
			return new SpringContainedBean<>(fallbackProducer.produceBeanInstance(name, beanType));
		}
		catch (RuntimeException ex2) {
			if (ex instanceof BeanCreationException) {
				if (logger.isDebugEnabled()) {
					logger.debug("Fallback producer failed for " + beanType + " with name '" + name + "': " + ex2);
				}
				// Rethrow original Spring exception from first attempt.
				throw ex;
			}
			else {
				// Throw fallback producer exception since original was probably NoSuchBeanDefinitionException.
				throw ex2;
			}
		}
	}
}
 
源代码13 项目: lams   文件: AbstractCdiBeanContainer.java
@Override
public <B> ContainedBean<B> getBean(
		Class<B> beanType,
		LifecycleOptions lifecycleOptions,
		BeanInstanceProducer fallbackProducer) {
	if ( lifecycleOptions.canUseCachedReferences() ) {
		return getCacheableBean( beanType, lifecycleOptions, fallbackProducer );
	}
	else {
		return createBean( beanType, lifecycleOptions, fallbackProducer );
	}
}
 
源代码14 项目: lams   文件: AbstractCdiBeanContainer.java
@SuppressWarnings("unchecked")
private <B> ContainedBeanImplementor<B> createBean(
		Class<B> beanType,
		LifecycleOptions lifecycleOptions,
		BeanInstanceProducer fallbackProducer) {
	final ContainedBeanImplementor bean = createBean(
			beanType,
			lifecycleOptions.useJpaCompliantCreation()
					? JpaCompliantLifecycleStrategy.INSTANCE
					: ContainerManagedLifecycleStrategy.INSTANCE,
			fallbackProducer
	);
	registeredBeans.add( bean );
	return bean;
}
 
源代码15 项目: lams   文件: AbstractCdiBeanContainer.java
@Override
public <B> ContainedBean<B> getBean(
		String beanName,
		Class<B> beanType,
		LifecycleOptions lifecycleOptions,
		BeanInstanceProducer fallbackProducer) {
	if ( lifecycleOptions.canUseCachedReferences() ) {
		return getCacheableBean( beanName, beanType, lifecycleOptions, fallbackProducer );
	}
	else {
		return createBean( beanName, beanType, lifecycleOptions, fallbackProducer );
	}
}
 
源代码16 项目: lams   文件: CdiBeanContainerDelayedAccessImpl.java
@Override
protected <B> ContainedBeanImplementor<B> createBean(
		Class<B> beanType, 
		BeanLifecycleStrategy lifecycleStrategy, 
		BeanInstanceProducer fallbackProducer) {
	return new BeanImpl<>( beanType, lifecycleStrategy, fallbackProducer );
}
 
源代码17 项目: lams   文件: CdiBeanContainerDelayedAccessImpl.java
@Override
protected <B> ContainedBeanImplementor<B> createBean(
		String name,
		Class<B> beanType,
		BeanLifecycleStrategy lifecycleStrategy,
		BeanInstanceProducer fallbackProducer) {
	return new NamedBeanImpl<>( name, beanType, lifecycleStrategy, fallbackProducer );
}
 
源代码18 项目: lams   文件: CdiBeanContainerDelayedAccessImpl.java
private BeanImpl(
		Class<B> beanType,
		BeanLifecycleStrategy lifecycleStrategy, 
		BeanInstanceProducer fallbackProducer) {
	this.beanType = beanType;
	this.lifecycleStrategy = lifecycleStrategy;
	this.fallbackProducer = fallbackProducer;
}
 
源代码19 项目: lams   文件: CdiBeanContainerDelayedAccessImpl.java
private NamedBeanImpl(
		String name,
		Class<B> beanType,
		BeanLifecycleStrategy lifecycleStrategy, 
		BeanInstanceProducer fallbackProducer) {
	this.name = name;
	this.beanType = beanType;
	this.lifecycleStrategy = lifecycleStrategy;
	this.fallbackProducer = fallbackProducer;
}
 
源代码20 项目: lams   文件: CdiBeanContainerImmediateAccessImpl.java
@Override
protected <B> ContainedBeanImplementor<B> createBean(
		Class<B> beanType,
		BeanLifecycleStrategy lifecycleStrategy,
		BeanInstanceProducer fallbackProducer) {
	final ContainedBeanImplementor<B> bean = lifecycleStrategy.createBean( beanType, fallbackProducer, this );
	bean.initialize();
	return bean;
}
 
源代码21 项目: lams   文件: CdiBeanContainerImmediateAccessImpl.java
@Override
protected <B> ContainedBeanImplementor<B> createBean(
		String name,
		Class<B> beanType,
		BeanLifecycleStrategy lifecycleStrategy,
		BeanInstanceProducer fallbackProducer) {
	final ContainedBeanImplementor<B> bean = lifecycleStrategy.createBean(
			name,
			beanType,
			fallbackProducer,
			this
	);
	bean.initialize();
	return bean;
}
 
源代码22 项目: lams   文件: ContainerManagedLifecycleStrategy.java
@Override
public <B> ContainedBeanImplementor<B> createBean(
		Class<B> beanClass,
		BeanInstanceProducer fallbackProducer,
		BeanContainer beanContainer) {
	return new BeanImpl<>( beanClass, fallbackProducer, ( (CdiBasedBeanContainer) beanContainer ).getUsableBeanManager() );
}
 
源代码23 项目: lams   文件: ContainerManagedLifecycleStrategy.java
@Override
public <B> ContainedBeanImplementor<B> createBean(
		String beanName,
		Class<B> beanClass,
		BeanInstanceProducer fallbackProducer,
		BeanContainer beanContainer) {
	return new NamedBeanImpl<>( beanName, beanClass, fallbackProducer, ( (CdiBasedBeanContainer) beanContainer ).getUsableBeanManager() );
}
 
源代码24 项目: lams   文件: ContainerManagedLifecycleStrategy.java
private AbstractBeanImpl(
		Class<B> beanType,
		BeanInstanceProducer fallbackProducer,
		BeanManager beanManager) {
	this.beanType = beanType;
	this.fallbackProducer = fallbackProducer;
	this.beanManager = beanManager;
}
 
源代码25 项目: lams   文件: ContainerManagedLifecycleStrategy.java
private NamedBeanImpl(
		String beanName,
		Class<B> beanType,
		BeanInstanceProducer fallbackProducer,
		BeanManager beanManager) {
	super( beanType, fallbackProducer, beanManager );
	this.beanName = beanName;
}
 
源代码26 项目: lams   文件: CdiBeanContainerExtendedAccessImpl.java
@Override
protected <B> ContainedBeanImplementor<B> createBean(
		Class<B> beanType,
		BeanLifecycleStrategy lifecycleStrategy,
		BeanInstanceProducer fallbackProducer) {
	if ( usableBeanManager == null ) {
		return new BeanImpl<>( beanType, lifecycleStrategy, fallbackProducer );
	}
	else {
		return lifecycleStrategy.createBean( beanType, fallbackProducer, this );
	}
}
 
源代码27 项目: lams   文件: CdiBeanContainerExtendedAccessImpl.java
private BeanImpl(
		Class<B> beanType,
		BeanLifecycleStrategy lifecycleStrategy,
		BeanInstanceProducer fallbackProducer) {
	this.beanType = beanType;
	this.lifecycleStrategy = lifecycleStrategy;
	this.fallbackProducer = fallbackProducer;
}
 
源代码28 项目: lams   文件: CdiBeanContainerExtendedAccessImpl.java
private NamedBeanImpl(
		String name,
		Class<B> beanType,
		BeanLifecycleStrategy lifecycleStrategy, 
		BeanInstanceProducer fallbackProducer) {
	this.name = name;
	this.beanType = beanType;
	this.lifecycleStrategy = lifecycleStrategy;
	this.fallbackProducer = fallbackProducer;
}
 
源代码29 项目: lams   文件: CdiBeanContainerExtendedAccessImpl.java
@Override
public <B> ContainedBean<B> getBean(
		Class<B> beanType,
		LifecycleOptions lifecycleOptions,
		BeanInstanceProducer fallbackProducer) {
	// todo (5.3) : should this throw an exception instead?
	return CdiBeanContainerExtendedAccessImpl.this.getBean( beanType, lifecycleOptions, fallbackProducer );
}
 
源代码30 项目: lams   文件: CdiBeanContainerExtendedAccessImpl.java
@Override
public <B> ContainedBean<B> getBean(
		String beanName,
		Class<B> beanType,
		LifecycleOptions lifecycleOptions,
		BeanInstanceProducer fallbackProducer) {
	// todo (5.3) : should this throw an exception instead?
	return CdiBeanContainerExtendedAccessImpl.this.getBean( beanName, beanType, lifecycleOptions, fallbackProducer );
}
 
 类所在包
 同包方法