JedisPool 을 Bean 으로 등록하기 위해서 Configuration 을 생성하여 Bean 으로 작성

문제 없이 JedisPool 이 생성되고 Bean 으로 등록이 될줄 알았지만, 구동 시 아래와 같은 사유로 컴파일 에러 발생
MXBean 이 이미 동일한 이름으로 등록이 되어 있어서 발생하는 것으로 보인다,.
그렇다면 new JedisPool("127.0.0.1", 6379); Pool 을 생성하는 것을 자세히 알아보자.

호스트와 포트만 넘겨주게 되면 GenericObjectPoolConfig 의 통해서 기본적인 pool 의 옵션을 따라가는 것을 볼 수 있다.
GenericObjectPoolConfig 를 들여다보면 BaseObjectPoolConfig 상속받고 있고, BaseObjectPoolConfig 안에서 문제가 되는 부분인 이름이 “pool” 로 기본적으로 설정되어 있는 것을 볼 수 있다.

GenericObjectPoolConfig 를 살펴보면서 *DEFAULT_JMX_NAME_PREFIX* 의 이름을 동일하게 사용하면서 발생하는 것으로 보인다.
여기서 궁금한 점은 Pool 은 알겟지만, JMX 는 무엇을 뜻하는 것일까? JMX 는 별도로 설정한 정보가 없는데 왜 이미 등록이 되어 있는 것일까? 를 알아보면 좋을 것 같다.
이와 같이 JMX 는 Java1.5 부터 기본적으로 지원되어 온 API 이다.
흔히 매트릭을 추적하는 작업으로 Spring 을 사용하면 APM 기술 또는 Spring Actuator 를 떠오르게 된다. 하지만 Java 기반으로 간단하게 지원되고 있는 모니터링 API 가 JMX 인 것이다.