Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- nGinder
- UnsupportedOperationException
- hbase 저장공간 설정
- pinpoint 2.5.3
- OIDC
- 개발 어렵당.ㅠ
- Loki 로그
- intellij
- R2DBC Paging
- save/update
- ㅉ때
- 7879
- 월급루팡 일지
- fake jwt
- jsonMarshaller
- 노드간 통신
- jar 배포
- 티스토리챌린지
- reids
- 애자일 싫타
- 플루터
- Ingress Controller Fake
- Armeria
- formik
- 오블완
- 핀포인트
- pinpoint
- 논블록킹 성능
- LPOS
- RedirectService
Archives
- Today
- Total
대머리개발자
[코틀린] 스프링 DI 본문
728x90
시작할때 부터 큰 그림을 그려서 설계서대로 하면 Best인듯 하지만
나는 바보 천치라 애자일스럽게...변덕스럽게게
클래스마다 필요 서비스를 주입하는 형태는 하드 코딩이다. 우리 고급인력이자나.
미리 주입해 놓고 가져다 쓰는 구조로 이용한다면 여러면에서 장점만 보인다.
1. 보일러 플레이트가 안 보일것이다. (여러 위치에서 서비스를 이용하기 위한 주입 코드 사라짐)
2. 유지보수 보다 쉽다.
해서 자바 플젝 할때도...서비스 Util에 모아 놓고 각 비지니스 로직에서 바로 호출 하는 구조로 사용했다.
즉, 미리 주입해놓은 친구를 가져다 쓰는 형태이다.
@Component
public class ServiceUtil {
private static BaseService baseService;
public static BaseService getBaseService() {
return baseService;
}
@Autowired
public void setBaseService(BaseService baseService) {
ServiceUtil.baseService = baseService;
}
private static ExtraInfoService additionalService;
public static ExtraInfoService getAdditionalService() {
return additionalService;
}
@Autowired
public void setAdditionalService(ExtraInfoService additionalService) {
ServiceUtil.additionalService = additionalService;
}
...
}
고대로 갓틀린으로 옮겨보자... God틀린!!
아.. 개틀린 어렵네..... ...하루 종일 삽질 끝에.. 굿 럭s
@RestController
class BoardEndPoint {
@GetMapping("/board/{boardID}")
fun getBoard(@PathVariable("boardID") boardID:Long): BoardDto? {
return ServiceUtils.getBoardService().get(boardID)
}
@PostMapping("/boards")
fun searchBoard(@RequestBody searchInfo: SearchInfo): MutableList<Board>? {
return ServiceUtils.getBoardService().search(searchInfo)
}
@PostMapping("/board")
fun createBoard(@RequestBody boardDto:BoardDto): BoardDto? {
return ServiceUtils.getBoardService().create(boardDto)
}
@DeleteMapping("/board/{boardID}")
fun createBoard(@PathVariable("boardID") boardID:Long){
ServiceUtils.getBoardService().delete(boardID);
}
}
깔끔스 하게.. compaion object{ } 과 init{ }이용해서
init {
..
}
companion object{
..
}
728x90
'개발이야기 > 코틀린' 카테고리의 다른 글
[코틀린] 스프링 배치(2) - 적용 (0) | 2023.09.04 |
---|---|
[코틀린] 스프링 배치(1) - 사전 주저리 (0) | 2023.09.01 |
[코틀린] queryDSL (1) | 2023.06.13 |
[코틀린] NULL 처리 (0) | 2023.05.16 |
코틀린 + Spring + JPA (0) | 2023.04.17 |