Spring

· Spring
사이드 프로젝트를 진행 중 비즈니스 로직을 담당하는 Service단에 예외 처리 로직이 들어가 관심사가 분리되지 않고, 예외 처리 로직도 로그만 남기고 예외를 다시 던지는 의미없는 예외 던지기라는 피드백을 받았다. 실제로 Service 코드엔 15개의 메서드에 동일한 try-catch 패턴이 있었다. @Transactionalpublic BookResponse updateBook(Long id, BookRequest request) { try { // 입력값 검증 bookValidator.validateUpdateBookRequest(id, request); // 기존 도서 조회 Book existingBook = findById(id..
· Spring
이번 글은 '스프링 MVC 2(타임리프 섹션) - 김영한' 강의를 듣는 중 식 기본 객체 (Expression Basic Objects) request = response = session = servletContext = locale = 편의 객체 Request Parameter = session = spring bean = 다음과 같은 코드에서 출발했다. 💡 타임리프 3.1+에서 `${#request}``${#response}``${#session}``${#servletContext}`코드들은 동작하지 않는다. SSR 렌더링인 타임리프에서 request나 session에 접근해 화면에 렌더링할 수 있는데, 개발자가 이런 코드를 실수로 작성한다면 ..
· Spring
Spring 컨테이너에서 빈을 구성하는 방법은 3가지가 있다. 1. XML을 사용하여 직접 빈 선언 2. 클래스에 `@Bean` 애노테이션을 사용하여 빈 선언@Configurationpublic class AppConfig { @Bean public UserService userService() { return new UserServiceImpl(userRepository()); }}3. 컴포넌트 스캔을 사용하여 빈 선언@Componentpublic class UserServiceImpl implements UserService { // 구현 내용}최근 Spring에선 컴포넌트 스캔을 주로 사용하고 Spring boot는 컴포넌트 스캔을 기본으로 한다. 컴포넌트 스..
· Spring
Spring에서 자주 사용하는 두 가지 어노테이션으로 @Controller와 @RestController가 있다. 기존 실습 때는 @Controller를 사용했고, 진행 중인 사이드 프로젝트에선 @RestController를 사용했다. 두 어노테이션의 차이를 알고 싶어 글을 작성하게 됐다. @Controller목적: View를 반환하기 위해 설계배경: Spring MVC 패턴을 구현하기 위해반환 값: View 이름(String)DispatcherServlet이 Client의 URL 형식인 요청 수신HandlerMapping이 적절한 Controller를 찾아 매핑선택한 Controller에게 HandlerAdapter가 역할 위임Controller는 받은 요청을 Service단에서 처리하고 View Na..
Ukjong
'Spring' 태그의 글 목록