본문 바로가기

web59

[REST API] @Autowired vs @RequiredArgsConstructor 일단 시작하기전에 스프링 공식 문서에서는 생성자를 통한 의존성(@RequiredArgsConstructor) 주입 (DI)를 권장하고 있다. Spring Team recommends: “Always use constructor based dependency injection in your beans. Always use assertions for mandatory dependencies”. (번역하자면 대충 쓰지말란 소리다) @Autowired도 예전에 나는 많이 썼었다. 일단 편하기때문이지! 하지만 final 옵션을 사용할 수 없기에, 의존성 주입하고 코드가 변질되어도 알 수가 없다. 또한 중복으로 참조가 가능하다.-> 런타임시 에러발생 아래에 예제 참조가 잘나와있다. https://madplay.gi.. 2023. 11. 16.
[REST API] CustomException 처리(@StandardException) 개발하다보면 에러를 애플리케이션에 딱 맞는 Exception을 만들 필요가 생긴다. RestFul API 를 만들시 공통된 포맷으로 클라이언트에게 뿌려주고 싶은 경우! 그래서 간단하게 만들어봄 일단 내가 새롭게 만들 예외가 Checked 예외인지 Unchecked 예외인지 판단한 후에 Checked예외라면, Exception을 상속받고 Unchecked(컴파일할때 잡히지 않는) 예외라면 RuntimeException을 상속받아서 구현하자. 나는 컴파일할때 잡히지 않는 에러처리를 위해 RuntimeException 상속을 받아서 구현하였다. Lombok에서 제공하는 @StandardException 어노테이션으로 간편하게 커스텀 예외를 만들수있다. * 생성자를 만들자 상황에 따라서 다르겠지만 기본적으로 아.. 2023. 11. 16.
[REST API] @Configuration / @Component 개발을 하다보면 @Bean 등록을 할 때 @Configuration 과 @Component 중에 뭘써야 할지 몰라 정리해본다. 일단 내가 알고있는 간단한 개념은 @Configuration - 개발자가 직접 제어가 불가능한 외부 라이브러리 또는 설정을 위한 클래스를 Bean으로 등록할 때 사용 - Method 에 @Bean이 있어야함.(짝꿍쓰) - Spring 컨테이너(Ioc)에 의해 처리 @Component - 개발자가 직접 작성한 클래스를 빈으로 등록하고 싶을 때 사용 - 다른 클래스에서 Bean으로 불러 사용이 가능함 - CompoentScan의 대상임을 표시하고, Spring 컨테이너에 등록 얼핏보면 비슷해보이지만, 사실 알고보면 차이가 있다. 가장 큰 차이는 @Bean 등록하는 방법이 다르다는 것.. 2023. 11. 14.
[Mybatis] Mybatis 에서 useGeneratedKeys 와 selectkey MYSQL 에서 insert 시에 pk값을 auto_increment 설정해놓은 ID 를 등록과 동시에 반환을 하기위해, 쿼리를 짰다. SELECT IF(MAX(VER_NO)+1 >= 0, MAX(VER_NO)+1, 0 ) as newVer FROM table_name UAG_CD=#{uagCd} INSERT INTO table_name ( UAG_CD , TITLE , CONTENT , VER_NO , DISP_YN , DEL_YN , REG_USER_ID , INS_DT ) VALUES ( #{uagCd} ,#{title} ,#{content} ,#{newVer} ,#{dispYn} ,#{delYn} ,#{regUserId} ,CURRENT_TIMESTAMP() ) Integer rowCount = .. 2023. 11. 13.