jrebel plugin 썸네일형 리스트형 Jrebel Ibatis Plugin을 만들어 봅시다.. -3- Ibatis의 resultMap 클래스로 사용되는 Domain 클래스들에 대해서 리로드시 캐싱에서 지우는 것으로 만들어봤고..이제는 쿼리와 resultMap 클래스가 정의 되어 있는 xml 파일들을 모니터링하여 xml 파일 변경시 xml 파일을 리로드 하도록 해야 합니다. 다만, ibatis에서 최소 read 단위가 sqlMapConfig.xml 이어서... 이 xml이 커지면 로딩하는데 시간이 걸리게 됩니다. 더 작은 단위로 모니터링하여 로드되도록 하고 싶은데 아직 거기까지는 못 하였습니다. 일단,, 최소 ibatis에서 buildSqlMapClient 메서드를 실행 할 때 로딩하는 xml 파일을 모니터링 할 수 있도록 어딘가에 저장해두도록 해야 합니다. 그 역할을 하는 파일을 SqlMapFilesMa.. 더보기 Jrebel Ibatis Plugin을 만들어 봅시다.. -2- 일단 Jrebel 플러그인의 메인이 되는 클래스는 org.zeroturnaround.javarebel.Plugin 인터페이스를 구현해야 합니다. 여기서 중요한 메서드가 preinit() 메서드 입니다. 앞서 얘기했듯이 Jrebel이 다양한 프레임워크에서 플러그인을 통해 클래스 실시간 로딩을 지원하는 방법은 컴파일 된 바이트코드를 핸들링하는 것 입니다. 이렇게 핸들링 할 클래스를 합쳐주는 메서드가 바로 preinit() 메서드입니다. 그리고 , void org.zeroturnaround.javarebel.Integration.addIntegrationProcessor(ClassLoader arg0, String arg1, ClassBytecodeProcessor arg2) 를 통해 등록되는 형식을 보면 a.. 더보기 Jrebel Ibatis Plugin을 만들어 봅시다.. -1- 회사에서 jrebel을 사용하면서 ibatis 에서 사용하는 sqlMap.xml과 Domain 클래스들의 변경에 대한 이슈가 있어서 플러그인을 만들었습니다. 회사에서는 프레임웍이 있어서 순수 ibatis를 위한 플러그인은 아니라서 소스를 그대로는 못 보여드리고.. 순수 ibatis (2.3.x)에서 사용 가능한 ibatis 플러그인을 한번.. 의사 코드를 사용해서 만들어 보려고 합니다. 우선 jrebel의 플러그인은 이미 컴파일된 클래스의 바이트 코드에 원하는 코드를 끼워넣어서 thread를 가로채는 방식으로 원하는 메서드를 먼저 실행하거나 나중에 실행하도록 하는 것이 기본적인 구현 방식입니다. 기본적으로 ibatis를 사용 할 때는 이런식이 됩니다. 일반적으로 매번 저렇게 SqlMapClient를 bu.. 더보기 이전 1 다음