Spring 의 내부 방법 호출 시 AOP 절단면 실효 문제 해결

1083 단어 ------【Spring】
SpringBoot 기반
장면: 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);

좋은 웹페이지 즐겨찾기