spring 에서 반사 사용

1891 단어 자바spring
BeanId 로 Bean 가 져 오기 
package cn.com.kgo.eventhand.util;

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;

@SuppressWarnings("static-access")
@Component
public class ContextUtil implements ApplicationContextAware {
	private static ApplicationContext commonApplicationContext;

	public void setApplicationContext(ApplicationContext context) throws BeansException {
		this.commonApplicationContext = context;
	}

	/**
	 *      bean          
	 * 
	 * @param beanId
	 *            bean id
	 * @return   bean     
	 */
	public static Object getBean(String beanId) {
		return commonApplicationContext.getBean(beanId);
	}

	/**
	 *      bean               
	 * 
	 * @param beanId
	 *            bean id
	 * @param clazz
	 *            bean    
	 * @return    bean  ,      ,     
	 */
	public static  T getBean(String beanId, Class clazz) {

		return commonApplicationContext.getBean(beanId, clazz);
	}

}

반 사 를 통 해서 Bean 을 수행 하 는 방법.
bean 을 사용 할 때 실체 대상 과 인터페이스 대상 을 얻 지 못 하고 대상 을 전환 할 수 없 을 때 반사 적 인 방식 으로 만 'Bean 의 방법' 을 실행 할 수 있 습 니 다.
획득 방법
Method method = ReflectUtil.getMethod(obj.getClass(), methodName);

ReflectUtil 은 spring 의 반사 도구 류 입 니 다. obj 는 위의 방법 으로 얻 을 수 있 는 bean 대상 입 니 다. getMethod 방법 은 여러 개의 과부하 가 있 습 니 다. 매개 변 수 를 설명 할 수 있 습 니 다.
실행 방법
첫 번 째 방식
자바 원본 사용 하기
method.invoke(obj, args);

method 는 반사 획득 방법 실체 이 고 obj 는 bean 대상 이 며 args 는 매개 변수 입 니 다.
두 번 째 방식 도 추천 사용 방식 입 니 다.
ReflectUtil 대상 사용 하기
ReflectionUtils.invokeMethod(method, obj, args);

method 방법 실체, obj bean 실체, args 매개 변수
실행 성공 후 object 개체 되 돌리 기
 
 
 

좋은 웹페이지 즐겨찾기