spring 에서 반사 사용
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 개체 되 돌리 기
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.