본문 바로가기
728x90

Programming/Spring8

@Configuration 안에 @Bean을 사용해야 하는 이유, proxyBeanMethods 스프링에서 수동으로 빈을 등록 할때 @Configuration 클래스 안에 @Bean을 사용한다. 왜 그런지 살펴보자. ● @Configuration 안에 @Bean을 사용하는 이유, proxyBeanMethods - @Bean 어노테이션을 이용한 수동 빈 등록 스프링에선 일반적으로 컴포넌트 스캔을 이용해 자동으로 빈을 등록하는 방법을 이용한다. 하지만 @Bean 어노테이션을 사용해 수동으로 빈을 등록해야 할 때도 있다. 개발자가 직접 제어가 불가능한 라이브러리를 활용할 때 애플리케이션 전 범위적으로 사용되는 클래스를 등록할 때 다형성을 활용하여 여러 구현체를 등록해야 할 때 @Bean을 이용한 수동 빈 메소드는 스프링 빈 안에만 구현되어 있다면 모두 동작한다. 하지만 스프링은 @Bean은 반드시 @Co.. 2022. 10. 30.
빈 등록을 위한 어노테이션 기존의 스프링 MVC에서는 xml을 활용하여 Bean을 등록하고 있었다. 하지만 프로젝트의 규모가 커짐에 따라 사용하는 요소들은 xml에 등록하는 것이 상당히 번거로워 져서 어노테이션 기반의 Bean 등록 방법이 탄생하게 되었다. Bean을 등록하기 위한 @Bean, @Component, @Configuration 어노테이션에 대하여 알아보자. ● Spring Bean이란? - 스프링에서 스프링의 DI Container에 의해 관리되는 POJO(Plain Old Java Object)를 Bean이라고 부른다. 이러한 Bean들이 스프링을 구성하는 핵심 요소이다. POJO(Plain Old Java Object)로써 스프링 애플리케이션을 구성하는 핵심 객체이다. 스프링 IoC 컨테이너(또는 DI 컨테이너).. 2022. 10. 30.
@Controller와 @RestController 컨트롤러를 지정하기 위한 어노테이션은 @Controller @RestController가 있다. 두 어노테이션의 차이 점은 HTTP Response Body가 생성되는 방식이다. ● @Controller - Controller로 View 반환하기 전통적인 Sprinv MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용한다. 아래와 같은 과정을 통해 Spring MVC Container는 Client의 요청으로부터 View를 반환한다. Client는 URI 형식으로 웹 서비스에 요청을 보낸다. DispatcherServlet이 요청을 위임할 HandlerMapping을 찾는다. HandlerMapping을 통해 요청을 Controller로 위임한다. Controller는 요청 처.. 2022. 10. 30.
@RequestBody, @ModelAttribute, @RequestParam 클라이언트에서 받은 요청을 객체로 바인딩 하기 위해 사용하는 방법에 알아보자 ● @RequestParam - 1개의 HTTP 요청 파라미터를 받기 위해 사용한다. 필수 여부가 true로 설정되어 있기에 반드시 해당 파라미터가 반드시 해당 파라미터가 전송되어야 하며, 파라미터가 전송되니 않으면 400 에러가 발생한다. 반드시 필요한 값이 아니라면 required를 false로 설정해 주면 된다.(defaultValue 옵션을 사용하면 기본값을 지정할 수 있다.) ● @RequestBody - 클라이언트가 전송하는 JSON(application/json) 형태의 HTTP Body를 Java 객체로 변환 시켜주는 역할을 한다. 그렇게 때문에 Body가 존재하지 않는 HTTP Get 메소드에 @RequestBo.. 2022. 10. 30.
728x90