자바웹프로그래밍21 [Spring] API 예외 처리 - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 5. 스프링이 제공하는 ExceptionResolver1 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링 부트가 기본으로 제공하는 ExceptionResolver 는 다음과 같다. HandlerExceptionResolverComposite 에 다음 순서로 등록되어 있다. 1. ExceptionHandlerExceptionResolver : @ExceptionHandler 를 처리한다. 2. ResponseStatusExceptionResolver : HTTP 상태코드를 지정해줄수 있다. 3. DefaultHandlerExceptionResolver.. BackEnd/Spring MVC 2022. 3. 15. [Spring] 로그인 처리2 - 필터, 인터셉터 - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 서블릿 필터 - 요청 로그 " data-ke-type="html">HTML 삽입미리보기할 수 없는 소스필터를 사용하여 사용자의 모든 요청에 로그를 남겨보자. ● LogFilter - 로그 필터@Slf4jpublic class LogFilter implements Filter{ @Override public void init(FilterConfig filterConfig) throws ServletException { log.info("log filter init"); } @Override public void doF.. BackEnd/Spring MVC 2022. 3. 13. [Spring] 로그인 처리1 - 쿠키, 세션 - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 회원 가입 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 데이터를 저장할 Member entity부터 만들어야 한다. ● Member @Data public class Member { private Long id; @NotEmpty private String loginId; // 로그인 ID @NotEmpty private String name; @NotEmpty private String password; } ● MemberRepository MemberRepository는 Member를 저장해두는 저장소 역할을 한게된다. @Slf4j @Re.. BackEnd/Spring MVC 2022. 3. 9. [Spring] 검증1 - Validation - 4 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 10. 오류 코드와 메시지 처리 5 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ● 핵심은 구체적인 것 을 먼저 사용하고, 덜 구체적일수록 나중에 사용한다. MessageCodesResolver 는 required.item.itemName 처럼 구체적인 것을 먼저 만들어주고, required 처럼 덜 구체적인 것을 가장 나중에 만든다. 그럼 왜 이런식으로 오류코드를 만들까? 모든 오류코드에 대하여 메시지를 전부 다 만들기는 힘들다. 일반적이면서 중요하지 않은 메시지는 범용적인 오류 코드인 required 와 같이 사용하고, 정말 중요한 내용은 필요할때 .. BackEnd/Spring MVC 2022. 3. 6. [Spring] 메시지, 국제화 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 스프링 메시지 소스 설정 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링은 기본적으로 메시지 관리 기능을 제공한다. 메시지 관리 기능을 사용하려면 스프링이 제공하는 MessageSource를 스프링 빈으로 등록하면 되는데, MessageSource는 인터페이스다. 따라서 구현체인 ResourceBundleMessageSource 를 스프링 빈으로 등록하면 된다. 직접 등록하는 방식을 코드로 살펴보자. @Bean public MessageSource messageSource() { ResourceBundleMessageSource messageS.. BackEnd/Spring MVC 2022. 3. 5. [Spring] 스프링 MVC - 기본 기능 - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 5. HTTP 요청 파라미터 - @ModelAttribute " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이전까지는 요청 파라미터를 받아서 필요한 인자를 추출하고, 그 값들을 객체를 만들어 넣어주는 방식을 취하였다. 다음과 같이 말이다. @RequestParam String username; @RequestParam int age; HelloData data = new HelloData(); data.setUsername(username); data.setAge(age); 스프링은 이 과정을 자동적으로 처리해주는 @ModelAttribute 기능을 지원.. BackEnd/Spring MVC 2022. 2. 27. [Spring] 웹 애플리케이션 이해 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 웹 서버, 웹 애플리케이션 서버 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 웹은 모든 것이 HTTP 기반으로 작동한다. - HTML, TEXT - IMAGE, 음성, 영상, 파일 - JSON, XML (API) - 거의 모든 형태의 데이터 전송 가능 - 서버 간에 데이터를 주고받을 때도 대부분 HTTP 사용 ● Web Server Web Server의 기능 HTTP 프로토콜을 기반으로 하여 클라이언트(웹 브라우저 또는 웹 크롤러)의 요청을 서비스하는 기능을 담당한다. 요청에 따라 아래의 두 가지 기능 중 적절하게 선택하여 수행한다. 1) 정적인 .. BackEnd/Spring MVC 2022. 2. 12. [Spring] 빈 스코프 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 빈 스코프란? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 빈 스코프란 말 그대로 빈이 생존할 수 있는 범위(기간)을 의미한다. 지금까지 공부했던, 스프링 컨테이너가 생성될때 같이 생성되서 ~ 스프링 컨테이너가 종료될때 까지 유지되는 범위는 싱글톤 범위이다. 스프링은 다음과 같은 다양한 스코프를 지원하고 있다. 싱글톤: 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입: 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. 웹 관련 스.. BackEnd/Spring 2022. 2. 8. [Spring] 의존관계 자동 주입 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 옵션 처리 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번시간에는 옵션처리를 공부하였다. 이는 주입할 스프링 빈이 없을때도 동작하도록 하는 과정이였다. 기본적으로 @Autowired는 required = true 이기 때문에 자동 주입대상이 없으면 오류가 발생한다. 3가지 방식으로 처리가 가능했다. 1) @Autowired(required = false) : 자동 주입할 대상이 없으면 수정자 메서드 자체가 호출 안되는 방식 2) org.springframework.lang.@Nullable : 자동 주입할 대상이 없으면 null이 입력된다. 3).. BackEnd/Spring 2022. 2. 5. [Spring] 컴포넌트 스캔 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 컴포넌트 스캔과 의존관계 자동 주입 시작하기 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 지금까지의 AppConfig를 생각하면, @Bean으로 생성할 빈 객체에 대한 정보를 적어줬었다. 하지만 컴포넌트 스캔을 이용하면 빈을 자동 등록할 수 있다. 이전까지의 예제에서는 등록한 스프링 빈이 적어서 수동으로 가능했지, 30개만 되도 수동으로 @Bean을 적어 등록하기는 힘들어진다... 따라서 보통 컴포넌트 스캔을 이용한다. 바뀐 AutoAppConfig는 다음과 같다. @Configuration @ComponentScan( excludeFil.. BackEnd/Spring 2022. 2. 4. [Spring] 싱글톤 컨테이너 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 싱글톤 컨테이너 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링 컨테이너는 싱글톤 패턴을 적용하지 않아도 객체 인스턴스를 싱글톤으로 관리한다. 이렇게 싱글톤 객체를 생성하고 관리하는 기능을 싱글톤 레지스트리 라고 한다. 이러한 기능 덕에 싱글톤을 위한 지저분한 코드가 들어갈 필요도 없으며, DIP, OCP, 테스트 등 의 제약사항이 없어진다 할 수 있다! 간단한 테스트 하나 해보자~ @Test @DisplayName("스프링 컨테이너와 싱글톤") void springContainer(){ ApplicationContext ac = ne.. BackEnd/Spring 2022. 2. 3. [Spring] 스프링 컨테이너와 스프링 빈 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 스프링 컨테이너 생성 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 스프링 컨테이너가 생성되는 과정과 코드를 살펴보자! 다음 코드를 먼저 살펴보자. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); 애노테이션 기반의 구성 정보를 담고 있는 AppConfig.class가 있다. 이를 사용하여 스프링 컨테이너를 생성할 수 있다. 위의 ApplicationContext는 인터페이스에 해당한다. 따라서 이를 구현한 여러 구현체.. BackEnd/Spring 2022. 2. 1. 이전 1 2 다음