BE/Spring(15)
-
[Spring] File Upload & Download
0. 기존 포스팅 [Spring] 도서 등록, 검색0. 출처 아직 배우고 있는 중이라 부정확한 정보가 포함되어 있을 수 있습니다! 주의하세요! 올인원 스프링 프레임워크 참고. 올인원 스프링 프레임워크 : 네이버 도서 네이버 도서 상세정보를ramen4598.tistory.com 추가한 이유:java 라이선스 문제로 6.x 버전부터는 CommnonsMultipartResolver를 사용할 수 없다.업로드할 파일의 정보를 저장하는 별도의 FileInfoDto를 정의해 업로드하는 방법이니깐 알아두자. 1. File Upload 가. pom.xml ... commons-fileupload commons-fileupload ${commons-file..
2024.07.06 -
[Spring] ControllerAdvice
1. ControllerAdvice 예외 발생 시 매번 try-catch를 해도 되지만 귀찮다. @ControllerAdvice은 비즈니스 로직과 예외 처리를 완전히 분리시켜줌과 동시에 원하는 곳에 원하는 방식으로 예외를 처리할 수 있게 해 준다. appServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/appServlet/servlet-context.xml throwExceptionIfNoHandlerFound true 1spring 6.1 버전부터는 throwExcepti..
2024.07.06 -
[Spring] Java Config
1. Spring 설정 파일을 작성하는 방법 Spring 설정 파일을 작성하는 방법은 크게 두 가지다. XML을 사용하는 방법과 Java Config를 사용하는 방법이다. 방법설명장점단점XMLXML 파일 안에 bean 객체를 정의하고 의존성 설정시각적으로 객체 관계 이해 용이XML 문법 필요, 타이핑 오류 가능Java Config설정을 Java 클래스로 작성타입 안전성, IDE 지원으로 리팩토링 용이설정 코드와 애플리케이션 코드 섞일 가능성, 복잡성 증가 Springboot를 생각하면 Java Config에 익숙해질 필요가 있겠다. 2. Web.xml & WebApplicationInitializerpackage com.company.fia;import org.slf4j.Logger;import org..
2024.07.06 -
[Spring] AOP
1. AOP Aspect Oriented Programming (관점 지향 프로그래밍) 기존 OOP에서는 핵심 로직을 여러 모듈에서 적용하는 데 있어 중복되는 코드가 발생한다. 핵심 관심(core concern): 핵심 비즈니스 로직공통 관심 사항(cross-cutting concern): 핵심 로직을 수행하기 위해서 필요한 부가적인 로직: 로깅, DB 연결, 파일 입출력, 보안 등 핵심 관심(core concern)과 공통 관심 사항(cross-cutting concern)으로 나눠보고 그 관점을 기준으로 각각 모듈화 하겠다. 이때 여러곳에서 쓰이는 공통 관심 사항을 모듈화한 것을 Aspect라고 한다. 핵심 기능에서 부가 기능을 분리함으로써 핵심기능을 설계하고 구현할 때 객체지향적인 가치를 지킬 수 ..
2024.07.06 -
[Spring] Interceptor
1. Interceptor란? Controller가 요청을 처리하기 전/후 처리.공통 코드 사용으로 코드 재사용성 증가.로깅, 모니터링, 접근 제어 등 실제 비즈니스 로직과 무관한 기능들을 분리할 수 있다. Filter와 AOP와 유사하지만 다르다. 이들과 다르게 Login Session 검증, Header 검증, JWT Token 검증 등 웹과 관련된 기능을 담당한다. FilterInterceptorAOP구현Jakarta.servlet.Filterorg.springframework.web.servlet.HandlerInterceptor 관리 컨테이너Servlet ContainerSpring ContainerSpring Container (Root)적용 위치web.xmlservlet-context.xm..
2024.07.06 -
[Spring] Filter
1. Filter란? 필터는 스프링의 독자적인 기능이 아닌 자바 서블릿에서 제공합니다. 공통적인 기능들을 서블릿이 호출되기 전후로 수행(전처리)되게 하고 싶다면 Filter를 사용하면 된다. MyFilter MyFilter com.company.hello.controller.MyFilter MyFilter /MyFilter/MyFilter : 필터링할 url public class MyFilter extends HttpFilter implements Filter { public void init(FilterConfig fConfig) throws ServletException { } class MyRequest extends HttpServletRequestWrapper { ..
2024.07.06 -
[Spring] Spring Web Application의 동작 원리
[Spring] 클라이언트의 요청이 처리되는 과정0. 출처 아직 배우고 있는 중이라 부정확한 정보가 포함되어 있을 수 있습니다! 주의하세요! 올인원 스프링 프레임워크 참고. 올인원 스프링 프레임워크 : 네이버 도서 네이버 도서 상세정보를ramen4598.tistory.com 이 글에서는 예전에 포스팅한 “[Spring] 클라이언트의 요청이 처리되는 과정”에서 다룬 Spring 프로젝트가 초기화되는 과정을 보다 깊이 알아보았다. 1. 3 layered architecture 3계층 아키텍처란? | IBM3계층 아키텍처는 애플리케이션을 프리젠테이션 계층, 애플리케이션 계층 및 데이터 계층으로 분리합니다.www.ibm.com 애플리케이션을 3개의 논리적 및 물리적 컴퓨팅 계층으로 분리하는 3 계층 아키텍처..
2024.07.06