Spring 의 내부 방법 호출 시 AOP 절단면 실효 문제 해결
1083 단어 ------【Spring】
장면: A 방법 은 내부 B 방법 을 호출 하고 B 방법 을 잘라 야 한다.
1. 새 도구 류 SpringContextUtil 은 applicationContextAware 인 터 페 이 스 를 실현 하고 @ Component 는 용기 관리 에 맡 깁 니 다.
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
SpringContextUtil .applicationContext = applicationContext;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static Object getBean(String name) throws BeansException {
return applicationContext.getBean(name);
}
public static T getBeanByClass(Class cls) throws BeansException {
return applicationContext.getBean(cls);
}
}
2. 내부 방법 을 호출 할 때 쓰기
// Bean SpringAOP
UserService service = SpringContextUtil.getBean(this.getClass());
User user = service .selectById(id);