Spring的手动注入,动态注入

参数说明:

Objectbean,就是一个已经被创建的实例;

ApplicationContext:Spring的Context;

AutowireCapableBeanFactory.AUTOWIRE_BY_NAME:按照名字来注入,注入类型。

/**
	 * 调用spring注入新创建对象的相关属性(根据属性名进行注入)
	 * 
	 * @param bean
	 * @param appContext
	 */
	public static void autowireBean(Object bean, ApplicationContext appContext) {
		autowireBean(bean, appContext, AutowireCapableBeanFactory.AUTOWIRE_BY_NAME);
	}

	/**
	 * 调用spring注入新创建对象的相关属性
	 * 
	 * @param bean
	 * @param appContext
	 * @param autowireMode
	 */
	public static void autowireBean(Object bean, ApplicationContext appContext, int autowireMode) {
		if (bean == null || appContext == null) {
			return;
		}

		AutowireCapableBeanFactory factory = appContext.getAutowireCapableBeanFactory();
		factory.autowireBeanProperties(bean, autowireMode, false);

		String beanName = ClassUtils.getUserClass(bean).getName();
		factory.initializeBean(bean, beanName);
	}

相关推荐