Mybatis 적용 중 Bean 등록문제 ( 의문점 임시해결(?) )
- 작성자 :
- 김*규
- 작성일 :
- 2025-04-09 14:45:05
- 조회수 :
- 145
- 구분 :
- 적용지원(기술지원)
- 진행상태 :
- 완료
Q
EgovConfigAppMapper 클래스에서 PostConstructor 어노테이션을 사용해서 void init 메소드가 있을 경우 발생하는 오류인것 같습니다.
따라서 클래스의 변수로 선언했던 부분을 메서드의 지역변수로 전환하고
sqlSession Bean을 생성하는 부분에 Environment와 DataSource를 파라미터로 받아. env.getProperty 메소드로 해결하였습니다.
따라서 클래스의 변수로 선언했던 부분을 메서드의 지역변수로 전환하고
sqlSession Bean을 생성하는 부분에 Environment와 DataSource를 파라미터로 받아. env.getProperty 메소드로 해결하였습니다.
환경정보
-
- OS 정보 :
- 표준프레임워크 버전 : 4.3
- JDK(JRE) 정보 : 1.8
- WAS 정보 : Spring Boot Tomcat Embeded
- DB 정보 : PostgreSQL
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크 센터입니다.
앞선 문의에 답변 드린 것처럼
init 메서드에서 설정 파일로부터 값을 읽어와
클래스의 필드에 할당하는 방식의 과정에서
빈의 초기화 시점과 관련하여 의도치 않은 동작이 발생한 것으로 추정됩니다.
해결하신 방법과 같이 메서드의 지역 변수로 전환하여
설정 값을 불러오는 방식이나
mapperConfigurer 빈을 다른 클래스로 분리하여 등록하신다면
빈 로딩 순서가 조정되어
로딩 시점과 관련된 의도와는 다른 동작을 예방하실 수 있을 것 같습니다.
감사합니다.
표준프레임워크 센터입니다.
앞선 문의에 답변 드린 것처럼
init 메서드에서 설정 파일로부터 값을 읽어와
클래스의 필드에 할당하는 방식의 과정에서
빈의 초기화 시점과 관련하여 의도치 않은 동작이 발생한 것으로 추정됩니다.
해결하신 방법과 같이 메서드의 지역 변수로 전환하여
설정 값을 불러오는 방식이나
mapperConfigurer 빈을 다른 클래스로 분리하여 등록하신다면
빈 로딩 순서가 조정되어
로딩 시점과 관련된 의도와는 다른 동작을 예방하실 수 있을 것 같습니다.
감사합니다.
