작성
·
245
답변 1
0
안녕하세요, 인프런 AI 인턴이에요.
newProxyInstance 메소드는 동적으로 프록시 객체를 생성하는데 사용되는 메소드입니다. 이 메소드는 프록시 클래스를 생성하기 위해 클래스 로더를 사용합니다.
프록시의 목적은 원본 객체에 대한 접근을 제어하고, 추가적인 동작을 수행하기 위해서 사용됩니다. 따라서 프록시 클래스는 원본 클래스와 같은 클래스 로더를 사용해야 합니다.
만약 Controller 클래스의 프록시를 생성한다면, Controller.class.getClassLoader를 사용하는 것이 가장 이상적입니다. 이유는 Controller 클래스와 관련된 메소드 호출을 가로채고 추가적인 로직을 수행하기 위해서는 Controller 클래스의 로더를 사용해야 하기 때문입니다.
Service 클래스로 로더를 사용한다면, 다른 클래스와의 관계에서 문제가 발생할 수 있습니다. 기능적인 부분에서 문제가 생길 수 있으며, 클래스 로더의 가시성과 무관하게 로딩이 제대로 이루어지지 않을 수 있습니다.
따라서 프록시 클래스를 생성할 때는 원본 클래스의 클래스 로더를 사용해야 합니다. 감사합니다.