스프링 위에 공통 클래스를 만들기Back-end/Java, Kotlin2021. 3. 7. 13:52
Table of Contents
우선 싱글톤 패턴을 직접 만들어서 스프링 클래스 위에 올리려고 하였으나...
계속 mapper를 주입받지 못하기 때문에
스프링의 IoC 컨테이너에 올려주는 것으로 전략을 바꾸었다.
1. 초기 버전 -- mapper 주입 안됨 (아마 static이라서 그런것으로 보인다...)
@Component
public class VoUtil {
private VoUtil() { }
// 싱글턴
private static class LazyHolder {
public static final VoUtil INSTANCE = new VoUtil();
public final static void setProperty(BoardMapper _mapper) {
mapper = _mapper;
}
}
public static VoUtil getInstance(BoardMapper _mapper) {
System.out.println("VoUtil mapper: " +_mapper);
LazyHolder.setProperty(_mapper);
return LazyHolder.INSTANCE;
}
public static VoUtil getInstance() {
return LazyHolder.INSTANCE;
}
public BoardMapper returnMapper() {
return mapper;
}
...
public 메서드 () { ... }
}
구현부
if(!existMapper) {
VoUtil.getInstance(mapper);
existMapper = true;
}
호출부에서도 이렇게 처리해야 한다... (existMapper는 플래그변수)
2. 싱글턴 방식으로 객체 주입
@Component
public class VoUtil {
// private VoUtil() { }
@Inject
public BoardMapper mapper;
...
}
.....와 확실히 스프링의 방식을 쓰는 것이 간결하다. ㅠㅠ
'Back-end > Java, Kotlin' 카테고리의 다른 글
json인듯 아닌듯 한 데이터를 jsonParsing하기 (0) | 2021.03.14 |
---|---|
외부에서 다운받은 jar 추가하기 (0) | 2021.03.14 |
싱글톤 패턴에 객체 주입받기! (ft.빌더) (0) | 2021.03.07 |
디자인패턴 중.. State (2) | 2020.12.17 |
enum 그것이 알구싶다 !! 이넘아 (0) | 2020.12.12 |
@philo0407 :: Philo의 다락방
hi hello... World >< 가장 아름다운 하나의 해답이 존재한다
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!