본문 바로가기
반응형

Backend22

스프링 - Controller에서 요청 데이터 받기 Spring Boot에서 Controller에서 요청 데이터를 받는 방법은 여러 가지가 있습니다. 아래는 주요 방법들과 예시 코드를 소개합니다. 1. @RequestParam - 쿼리 파라미터나 폼 데이터 받기 @RequestParam은 주로 GET 요청의 쿼리 파라미터나 POST 요청의 폼 데이터를 처리할 때 사용됩니다. @GetMapping("/greeting") public String greeting(@RequestParam(name = "name", required = false, defaultValue = "World") String name, Model model) { model.addAttribute("name", name); return "greeting"; } 2. @PathVariab.. 2024. 3. 9.
서블릿(Servlet), WAS 서블릿(Servlet) Java를 사용하여 웹 서버에서 실행되는 프로그램을 작성하기 위한 기술이다. 서블릿은 클라이언트의 요청을 처리하고, 그결과를 클라이언트에게 다시 보내는 역할을 한다. WAS를 직접 구현하는 경우 순서 내용 1 서버 TCP/IP 연결 대기, 소켓 연결 : 클라이언트의 연결 요청을 대기하고 소켓을 통해 연결 2 HTTP 요청 메시지를 파싱해서 읽기: 클라이언트로부터 받은 HTTP 요청을 메시지로 파싱하여 읽는다. 3 POST 방식, /save URL 인지: HTTP 요청메서드가 무엇인지, 요청 URL의 경로를 인지하는 작업 4 Content-Type 확인 5 HTTP 메시지 바디 내용 파싱 예를 들어 JSON 형식의 데이터를 Java 객체로 파싱하는 작업 6 저장 프로세스 실행 7 비.. 2024. 1. 29.
컴포넌트 스캔의 필터 활용 - Spring 컴포넌트 스캔의 필터 활용 includeFilters : 포함할 필터 excludeFilters : 불포함할 필터 우선 사용자 정의 에너테이션을 하나 만든다. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyExcludeComponent { } and @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyIncludeComponent { } 위에 붙은 여러 가지의 에너테이션은 @Component의 소스코드에서 가져온 것 그 다음에 빈이 될 클래스에 해당 어노테이션을 붙인다... 2023. 10. 27.
의도적으로 동일 타입의 스프링 빈이 다 필요한 경우 - Spring 의도적으로 동일 타입의 스프링 빈이 다 필요한 경우 public class AllBeanTest { @Test @DisplayName("타입의 모든 빈 찾기") void findAllBean(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); // AutoConfigApp도 등록한 이유는 아래 DiscountService는 본인만 스프링빈이기 때문에 // DiscountPolicy 타입 빈을 가져오려면 빈을 포함하고 있는 AutoAppConfig도 같이 빈으로 등록해준다. DiscountService discountService = ac.getBean(Disc.. 2023. 10. 27.
같은 타입 빈이 여러 개인 경우 - Spring 조회 대상 빈이 2개 이상일 때 해결 방안 @Autowired 필드명 매칭 Quilifier -> @Quilifier끼리 매칭 -> 빈이름 매칭 @Primary 사용 @Autowired 필드명 매칭 예시 코드 @Autowired public OrderServiceImpl(ClientRepository clientRepository, DiscountPolicy discountPolicy) { this.clientRepository = clientRepository; this.discountPolicy = discountPolicy; } 예시 상황 discountpolicy의 구현체인 정률과 정액 할인이 빈에 등록됐다고 가정해보자 이 경우에는 오류가 발생할 것이다. (위 생성자에서 DiscountPolicy.. 2023. 10. 27.
사용자 정의 애노테이션 - Spring 사용자 정의 애노테이션 사용자 정의 애노테이션을 만드는 이유? @Qualifier("") 에너테이션 안에 들어가는 문자열은 컴파일 시점에서 문자열 인식이 안되는 문제가 있을 수 있다. 또는 문자를 잘못 입력해도 오류가 발생할 수 있다. 이럴때 사용자 정의 애노테이션을 만들어서 코드의 정확성을 높이는 방법을 활용할 수 있다. @Qualifier 에노테이션 만들기. shift+shift 하면 여러가지 소스파일을 검색할 수 있음. 여기서 @Qualifier 검색 Qualifier의 소스코드를 보면 여러가지 에너테이션으로 만들어진 것을 볼 수 있다. 여러 에너테이션들을 복사해서 만드려는 에너테이션에 그대로 복사. 그리고 Qualifier를 마지막에 붙여줌. 에노테이션 직접 만들기 @Target({ElementT.. 2023. 10. 27.
반응형