반응형 Backend/Spring(이론)13 Spring 메시지, 국제화 개념 메시지 국제화 정리Spring에서 메시지와 국제화를 쉽게 관리할 수 있는 기능을 제공메시지와 국제화는 다국어 지원 애플리케이션을 개발 가능케 함.1. 메시지 소스 설정Spring에서 메시지를 관리하기 위해 MessageSource 인터페이스를 사용일반적으로 ResourceBundelMessageSource를 빈으로 설정하여 사용예) application.properties 설정propertiesspring.messages.basename=messagesspring.messages.encoding=UTF-8Java@Configurationpublic class AppConfig { @Bean public MessageSource messageSource() { ResourceBundleMess.. 2024. 6. 5. 스프링 - 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 / ComponentScan의 탐색 위치와 기본 스캔 대상 ComponentScan의 탐색 위치와 기본 스캔 대상 @ComponentScan(basePackages = {"hello.test1", "hello.test2"}) 지정하는 패키지의 하위 패키지만을 스캔한다. 지정 하지 않으면 현재 위치 패키지의 하위 패키지를 다 스캔하기 때문에 필요하다면 지정한다. 즉, @ComponentScan이 붙은 설정 정보 클래스의 패키지가 스캔의 시작 위치가 됨. 위 예시는 hello/text1 패키지와 test2 패키지의 하위 패키지만을 스캔 권장 방법은 애초에 구성 설정 클래스는 프로젝트를 대표하는 정보이므로, 프로젝트 시작 root에 위치 시켜 놓고, bassPackages 지정은 생략하는 것이 최근 관례 @SpringBootApplication SpringBoot 프.. 2023. 10. 17. Spring / 컴포넌트 스캔에서 빈을 중복으로 등록하는 상황과 충돌 컴포넌트 스캔에서 빈을 중복으로 등록하는 상황과 충돌 자동 빈 등록 (ComponentScan) 수동 빈 등록 (@Bean) 컴포넌트 스캔에 의해 자동으로 중복된 이름의 스프링 빈이 등록되면? ConflictingBeanDefinitionException 예외가 발생 수동 빈 등록과 자동 빈 등록이 충돌 되었다면? 예외가 발생하지 않는다. 이 경우, 수동 빈 등록이 우선권을 가진다. 수동 빈이 자동 빈을 오버라이딩 해버림. 테스트 코드를 보면 오버라이딩 했고 replace됐다는 것을 확인 할 수 있음. 그러나 이 것은 큰 버그를 야기할 수 있다. 따라서 최근의 스프링 부트는 수동 빈 등록과 자동 빈의 충돌 발생 시 오류가 발생하도록 기본 값을 바꿈. @SpringBootApplication 클래스를 실행.. 2023. 10. 17. Spring / 컴포넌트 스캔과 의존관계 자동 주입 (ComponentScan) 컴포넌트 스캔과 의존관계 자동 주입 등록해야 할 빈(@Bean)이 몇백 몇천개라면? 스프링은 설정 정보가 없어도 자동으로 스프링 빈을 등록하는 컴포넌트 스캔 기능을 제공 의존 관계도 자동 주입하는 @Autowired도 제공 @ComponentScan 자동으로 스프링 빈을 끌어올리는 에너테이션 즉 자동으로 스프링 빈을 등록해줌 이 에너테이션은 @Component 에너테이션이 붙은 클래스를 모두 스캔해서 스프링 빈으로 등록 @ComponentScan( excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) 스프링 빈을 자동 등록하는데 필터링 할 것을 지정 컴포넌트 스캔을 지정하면 @.. 2023. 10. 17. 이전 1 2 3 다음 반응형