[Spring] self-invocation 의 문제와 사용법
저번에 eh-cache관련되서, self invocation의 문제에 대해서 잠깐 언급했다. 위와 같이, cacheable로 메소드를 감싸면, 해당 메소드에서 생성한 Post객체는 주소가 달라지지않고, 캐싱하게된다. 해당 eh캐시는, 자바 기반이고 스프링프레임워크와 생명주기를 함께한다. 하여 이런식으로 같은 주소를 가지게 된다. 그런데 여기서 문제가 있다. self invocation을 강제로 발생시켜서 확인해보자. 기존의 cacheTest의 메소드를, 호출하는 것이 아니라, 컨트롤러에서 해당 foo()를 호출하고, foo에서 cacheTest를 호출하게 한다. 이렇게 되는 경우에는,당연히 cacheTest를 호출하는거고, 캐시를 타는거니까 캐싱이 타게될 것같지만 다른 주소를 호출하게 된다. 즉 캐싱이 ..
[Spring] Invocation, RMI 관련 기초 개념
Spring invoaction이란 뭘까? 우선 invocation은 메소드 호출과 같은 의미이다. 메소드를 호출 이라는 의미이다. 1) 간단한 리플렉션 및 invoke 예제 우선 리플렉션으로, 클래스를 받아서, 다른 곳의 클래스의 메소드를 호출해보자 1) TestReflection으로, 리플렉션이 될만한 클래스, 그리고 하위에 메소드를 선언해준다. 2) 해당 다른 클래스에서 해당 클래스 파일을 리플렉션, 해당 메소드를 가져와서, 호출해보자 실제로, callbyName이라는 메소드를 invoke하고, 해당 값으로 콘솔에 gd가 출력이 되었다 이렇게 리플렉션으로 해당 클래스파일을 가져와서 호출할수 있다. 우선 리플렉션은, 그 클래스파일의 타입을 알지 못해도, 해당 클래스의 메소드를 사용할수있다. 해당 리플..