
MappingController @RestController public class MappingController { private Logger log = LoggerFactory.getLogger(getClass()); @RequestMapping(value = "/hello-basic") public String helloBasic() { log.info("helloBasic"); return "ok"; } } 이 url이 오면 실행이 된다. 매핑 정보(한번 더) 둘다 허용 - 스프링 부트 3.0 이전 다음 두가지 요청은 다른 URL이지만, 스프링은 다음 URL 요청들을 같은 요청으로 매핑한다. 매핑: /hello-basic URL 요청: /hello-basic , /hello-basic/ HTTP..

로깅 간단히 알아보기운영 시스템에서는 System.out.println() 같은 시스템 콘솔을 사용해서 필요한 정보를 출력하지 않고, 별도의 로깅 라이브러리를 사용해서 로그를 출력한다. 로깅 라이브러리스프링 부트 라이브러리를 사용하면 스프링 부트 로깅 라이브러리( spring-boot-starter-logging )가 함께 포함된다.스프링 부트 로깅 라이브러리는 기본으로 다음 로깅 라이브러리를 사용한다 SLF4J - http://www.slf4j.orgLogback - http://logback.qos.ch 로그 라이브러리는 Logback, Log4J, Log4J2 등등 수 많은 라이브러리가 있는데, 그것을 통합해서 인터페이스로 제공하는 것이 바로 SLF4J 라이브러리다.쉽게 이야기해서 SLF4J는 인터..

스프링 MVC - 실용적인 방식 MVC 프레임워크 만들기에서 v3은 ModelView를 개발자가 직접 생성해서 반환했기 때문에, 불편했던 기억이 날 것이다. 물론 v4를 만들면서 실용적으로 개선한 기억도 날 것이다. 스프링 MVC는 개발자가 편리하게 개발할 수 있도록 수 많은 편의 기능을 제공한다. 실무에서는 지금부터 설명하는 방식을 주로 사용한다. SpringMemberControllerV3 * v3 * Model 도입 * ViewName 직접 반환 * @RequestParam 사용 * @RequestMapping -> @GetMapping, @PostMapping @Controller // Spring 컨테이너에 컨트롤러 빈으로 등록됨 @RequestMapping("/springmvc/v3/membe..

@RequestMapping 을 잘 보면 클래스 단위가 아니라 메서드 단위에 적용된 것을 확인할 수 있다. 따라서 컨트롤러 클래스를 유연하게 하나로 통합할 수 있다. SpringMemberControllerV2 * 클래스 단위 -> 메서드 단위 * @RequestMapping 클래스 레벨과 메서드 레벨 조합 @Controller // Spring 컨테이너에 컨트롤러 빈으로 등록됨 @RequestMapping("/springmvc/v2/members") // 클래스 레벨의 URL 매핑 public class SpringMemberControllerV2 { private MemberRepository memberRepository = MemberRepository.getInstance(); @RequestM..

스프링 MVC - 시작하기 스프링이 제공하는 컨트롤러는 애노테이션 기반으로 동작해서, 매우 유연하고 실용적이다. 과거에는 자바 언어에 애노테이션이 없기도 했고, 스프링도 처음부터 이런 유연한 컨트롤러를 제공한 것은 아니다. @RequestMapping 스프링은 애노테이션을 활용한 매우 유연하고, 실용적인 컨트롤러를 만들었는데 이것이 바로 @RequestMapping 애노테이션을 사용하는 컨트롤러이다. 다들 한번쯤 사용해보았을 것이다. 여담이지만 과거에는 스프링 프레임워크가 MVC 부분이 약해서 스프링을 사용하더라도 MVC 웹 기술은 스트럿츠 같은 다른 프레임워크를 사용했었다. 그런데 @RequestMapping 기반의 애노테이션 컨트롤러가 등장하면서, MVC 부분도 스프링의 완승으로 끝이 났다. @Req..

뷰 리졸버 OldController - 뷰 조회할 수 있도록 변경 @Component("/springmvc/old-controller") public class OldController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("OldController.handleRequest"); return new ModelAndView("new-form"); } } 일단 이렇게만 하면 404 오류페이지 나옴. 현재 뷰를 찾지 못하기 때문에. application.pr..

1. 과거 - 지금은 전혀 사용하지 않지만, 스프링이 주로 사용했던 스프링이 제공하는 간단한 컨트롤러로 핸들러 매핑과 어댑터를 이해해보기 Controller 인터페이스 과거 버전 스프링 컨트롤러 스프링도 처음에는 이런 딱딱한 형식의 컨트롤러를 제공했음. OldController @Component("/springmvc/old-controller") public class OldController implements Controller { @Override public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { System.out.println("OldControl..