Spring(32)
-
Spring MVC 동작 원리
WebApplicationContext(DispatcherServlet)설정파일은 mvc-servlet.xml이다.Controller단 관련 빈들을 등록해준다.즉, mvc-servlet에서는 @Controller를 스캔하도록 하면된다.물론 @Controller뿐만아니라 Controller 단에서 사용하는 여러 빈들을 등록하면된다. 근데 이런 빈들은 각각의 역할이 있기 때문에 단순히 빈 등록 방법만 하기보다는이 DispatcherServlet이 어떤식으로 동작하는지를 알아야한다. 그 후 mvc-servlet.xml 내용을 살펴보자. 기본적으로 우리가 만드는 Controller는 다음과 같은 형태를 띈다.@Controllerpublic class FreeController {@RequestMapping(..
2024.07.12 -
Spring DI 적용하기
Spring의 DI 컨테이너 BeanFactory 만들어보기BeanFactory는 스프링이 빈을 생성하고 의존관계를 설정하는 기능을 담당하는 가장 기본적인IOC 컨테이너를 말한다. 이 BeanFacotry를 구현한 많은 컨테이너를 제공하고 있고개발자는 원하는 컨테이너를 선택해 빈을 관리하면 된다.그 중 많이 선택하는 방식이 @Annotation기반에 @Controller, @Service, @Inject 등을 붙인 방식이다. 여기서는 Reflections를 이용해 @Controller, @Service, @Inject 가 붙은 클래스들을 DI 방식을 통해 빈 등록하는 걸 구현해본다. DI는 생성자 DI만 생각한다.스프링에서처럼 다양한 기능을 제공하는 것이 아닌 단순히 빈을 생성하는 기능만 구현한..
2024.05.05 -
RequestParam,RequestBody,ModelAttribute
@RequestParam @RequestParam은 1개의 HTTP 요청 파라미터를 받기 위해서 사용한다. @RequestParam의 required 속성은 기본값이 true이다. 요청 파라미터의 값이 없다면, 에러가 발생한다. 요청 파라미터가 필수가 아닌 경우에는 required 속성을 false로 한다. 이때는 파라미터의 값이 없다면 에러가 발생하지 않고 null값이 들어간다. int, long 등 null값이 들어갈 수 없는 변수일 경우도 에러가 난다. @RequestMapping("/studentView") @ResponseBody public String studentView(@RequestParam(required = true) Long id){ //요청에 파라미터가 없으면 에러가 난다. re..
2024.03.10 -
Controller에서 객체 매핑
Person 클래스@Getter@Setter@ToStringpublic class Person { private String name; private int age;} 태그에서 데이터를 전달해보자. @RequestParam,@ModelAttribute,@RequestBody 차이스프링에서 객체-파라미터 매핑은 요청상황이나 응답상황 모두 MessageConverter가 담당한다.상황에 따라 스프링이 적절한 MessageConverter의 구현체를 통해 객체-파라미터 매핑을 한다.요청에서 @RequestParam, @ModelAttribute가 붙은면 FormHttpMessageConverter가,@RequestBody가 붙으면 MappingJacksonHttpMessageCon..
2023.11.06 -
Spring - 스프링 컨테이너란
일반적으로 개발자로서 컨테이너를 검색하면 WEB Container, Servlet Container, Spring Container 등이 나온다.이 컨테이너들을 이해하기 위해서는 컨테이너가 뭔지를 이해해야한다.일반적인 IT에서의 컨테이너는 여기를 참고하자. https://cloud.google.com/learn/what-are-containers?hl=ko 컨테이너란? | Google Cloud컨테이너는 어떤 환경에서나 실행하기 위해 필요한 모든 요소를 포함하는 경량 소프트웨어 패키지입니다.cloud.google.com Spring 컨테이너란 ApplicationContext를 스프링 컨테이너라고 합니다. ApplicationContext는 인터페이스입니다.이 ApplicationCon..
2022.06.20 -
Spring 엑셀 다운로드 -2 모듈화와 Reflection
https://brilliantdevelop.tistory.com/125?category=1018911에서 FreeBoard테이블 엑셀 다운로드를 하였다. 이제 Member테이블에서도 엑셀 다운로드를 하려고 한다. Controller에 다음과 같이 member에서의 excel다운로드기능의 메소드를 추가하려고 한다. ExcelControoler의 excelDownloadMember 메소드 @RequestMapping("/member/excelDown") public void excelDownloadMember(HttpServletResponse response, @ModelAttribute("searchVO")SearchVO searchVO , @ModelAttribute("searchJob") Strin..
2022.06.14