[Spring] xml 설정 파일 예시
·
개발/Spring
web.xml (Deployment Descriptor): 웹 애플리케이션의 기본적인 설정. DispatcherServlet 등록, 필터 설정, 리스너 설정 등을 포함.Spring Application Context XML 파일: Spring 컨테이너의 설정. 빈(Bean) 정의, 의존성 주입(DI), AOP 설정 등을 포함. DispatcherServlet은 자신만의 Application Context를 가질 수 있음1. web.xml (DispatcherServlet 등록)XML  My Spring MVC Application dispatcher org.springframework.web.servlet.DispatcherServlet contextConfigLocati..
[Spring] 날짜 파라미터 처리하기
·
개발/Spring
1. String으로 받아서 직접 파싱 (가장 기본적인 방법):클라이언트로부터 날짜를 String 형태로 받는다 (예: "2023-10-27").java.time.LocalDate, java.time.LocalDateTime, java.util.Date, java.text.SimpleDateFormat 등을 사용하여 직접 파싱.Java @GetMapping("/date")public String processDate(@RequestParam("date") String dateString, Model model) { try { // java.time.LocalDate 사용 (Java 8 이상) LocalDate date = LocalDate.parse(dateString, D..
[Spring] Spring MVC 요청의 흐름
·
개발/Spring
Spring MVC는 Model, View, Controller 패턴을 기반으로 하는 웹 프레임워크로, 사용자 요청 처리부터 응답 생성까지 일련의 흐름을 가지고 있다. 기본적인 흐름은 다음과 같다.1. DispatcherServlet (Front Controller) 요청 수신:클라이언트의 모든 요청은 DispatcherServlet (Front Controller)이 가장 먼저 받는다.DispatcherServlet은 web.xml (또는 Java Config)에 설정되어 있으며, 특정 URL 패턴 (예: /)에 매핑된다.2. HandlerMapping에 요청 위임:DispatcherServlet은 HandlerMapping에게 요청을 처리할 적절한 Controller를 찾아달라고 요청.HandlerM..
[Spring] webapp 루트 디렉토리 리소스 사용하기
·
개발/Spring
스프링 프레임워크에서 webapp (웹 애플리케이션 루트) 디렉토리 아래의 리소스에 접근하는 방법은 크게 다음과 같다.1. ServletContext를 이용하는 방법 (Low-Level)가장 기본적인 방법으로, 서블릿 API의 ServletContext 객체를 직접 사용.ServletContext는 웹 애플리케이션의 컨텍스트 정보를 담고 있으며, 웹 애플리케이션 루트 디렉토리에 대한 접근을 제공.Java @Controllerpublic class MyController { @Autowired private ServletContext servletContext; // ServletContext 주입 @GetMapping("/getResource") public String getRes..
[Spring] 리소스 접두어
·
개발/Spring
1. classpath:의미: 클래스패스(Classpath)에서 리소스를 찾는다.(ex: 일반적인 maven / gradle 폴더 구조에서는 src/main/java , src/main/resources , src/test/java , src/test/resources   가 클래스패스 루트로 등록 되어 있음)동작 방식:클래스 로더(Class Loader)를 사용하여 리소스를 찾는다.JAR 파일 내부, 클래스패스에 등록된 디렉토리 등에서 리소스를 탐색.classpath: 뒤에 오는 경로는 클래스패스 루트를 기준으로 하는 상대 경로.예시:classpath:config/application.properties: 클래스패스 루트의 config 디렉토리 안에 있는 application.properties 파일을..
[Spring] 스프링에서 리소스에 접근하는 방법
·
개발/Spring
리소스(Resource)는 소프트웨어 애플리케이션이나 시스템이 작동하는 데 필요한 모든 자원 또는 데이터를 의미한다.스프링 리소스 (Resource)스프링 프레임워크에서 "리소스"는 애플리케이션에서 필요로 하는 다양한 종류의 정적 자원을 추상화한 인터페이스 이다. 쉽게 말해, 파일, 클래스패스, URL 등으로부터 데이터를 읽어오는 방식을 통일하여 편리하게 자원을 관리할 수 있도록 돕는 역할 한다.리소스 인터페이스 (org.springframework.core.io.Resource)Resource 인터페이스는 다음과 같은 주요 메서드를 제공.getInputStream(): 리소스의 내용을 읽어오는 InputStream을 반환.exists(): 리소스가 물리적으로 존재하는지 확인.isOpen(): 리소스가 ..
[Spring] 스프링 빈 주입 방법
·
개발/Spring
Spring에서 빈을 주입하는 방법은 필드 주입, Setter 주입, 생성자 주입 세가지가 있다. 1. 필드 주입 (Field Injection)방법: @Autowired 어노테이션을 필드(멤버 변수)에 직접 붙인다.Java @Componentpublic class MyService { @Autowired private MyRepository myRepository; // 필드 주입 // ...} 장점:코드가 가장 간결.단점:강한 결합: MyService 클래스는 MyRepository 없이는 테스트하기 어렵다. (리플렉션을 사용하지 않고는 외부에서 myRepository 필드에 다른 객체를 주입할 수 없음)순환 참조 (Circular Dependency) 문제 발생 가능성: 필드 주입은..
[Spring] 의존성 주입 어노테이션
·
개발/Spring
Spring 의존성 주입 어노테이션 정리:@AutowiredSpring Framework타입(Type)Spring에서 가장 널리 사용되는 의존성 주입 어노테이션.타입을 기준으로 일치하는 빈을 찾아서 주입.동일한 타입의 빈이 여러 개 있으면,NoUniqueBeanDefinitionException이 발생. 이 경우 @Qualifier와 함께 사용하여 주입할 빈을 명시하거나, @Primary를 사용하여 우선순위를 지정할 수 있다.@QualifierSpring Framework이름(Name)@Autowired와 함께 사용되어, 동일 타입의 빈이 여러 개 있을 때 어떤 빈을 주입할지 이름으로 지정.@Autowired가 붙은 필드, 생성자 파라미터, Setter 메서드 파라미터에 함께 사용.@Bean 메서드에도 ..