본문 바로가기

분류 전체보기72

[Spring] @RequestParam 사용법 스프링에서는 Http 요청 파라미터 값을 편리하게 사용하게 해주는 @RequestParam을 지원한다. HttpServletRequest의 request.getParameter의 기능과 동일하다고 보면 된다. @RequestParam 사용법 @ResponseBody @RequestMapping("/request-param-v1") public String requestParamV2( @RequestParam("username") String memberName, @RequestParam("age") int memberAge) { log.info("username={}, age={}", memberName, memberAge); return "ok"; } Http 요청 파라미터의 이름으로 바인딩하여 그 값.. 2023. 1. 10.
[Spring] @PathVariable 사용법 REST API에서 URL의 값을 처리하려면 어떻게 해야 할까? http://localhost:8080/mapping/userA userA라는 값을 url에서 가져오고 싶을 때 @PathVariable을 이용하면 쉽게 처리할 수 있다. @PathVariable 사용법 @GetMapping("/mapping/{userId}") public String mappingPath(@PathVariable("userId") String data) { log.info("mappingPath userId={}", data); return "ok"; } @PathVariable의 이름과 url의 괄호 안의 이름이 같은 경우 data에 해당 값을 저장한다. @GetMapping("/mapping/{userId}") pub.. 2023. 1. 10.
[Spring] 스프링 MVC의 구조 MVC 패턴 MVC 패턴이란 애플리케이션을 구성하는 요소를 역할에 따라 Model, View, Controller로 나누어 구분한 패턴이다. 2023.01.04 - [Spring] - [Spring] MVC 패턴 [Spring] MVC 패턴 MVC 패턴이란 MVC는 Model, View, Controller의 약자로 애플리케이션을 개발할 때 구성요소를 3가지의 역할로 구분한 것을 말한다. MVC 패턴의 탄생 배경 MVC 패턴 이전에는 비즈니스 로직과 뷰 로직을 같 dangdangee.tistory.com 스프링 MVC 웹 계층에 서블릿 API를 기반으로 클라이언트의 요청을 처리하는 모듈이다. Model, View, Controller로 역할을 분리해 각자의 영역에 집중하여 효율적으로 개발이 가능하다. 스.. 2023. 1. 9.
[Spring] MVC 패턴 MVC 패턴이란 MVC는 Model, View, Controller의 약자로 애플리케이션을 개발할 때 구성요소를 3가지의 역할로 구분한 것을 말한다. MVC 패턴의 탄생 배경 MVC 패턴 이전에는 비즈니스 로직과 뷰 로직을 같이 두는 방식으로 개발을 하였다. 하지만 다음과 같이 개발할 경우 여러 문제점이 있었다. 너무 많은 역할 하나의 서블릿이나 JSP만으로 비즈니스 로직과 뷰 로직을 모두 처리하게 된다면, 너무 많은 역할을 하게 되고 유지보수도 어려워진다. 변경의 라이프 사이클 보통 비즈니스 로직과 뷰 로직의 수정은 각각 다르게 발생할 경우가 많기 때문에 유지보수하기가 어려워진다. 기능 특화 JSP 같은 뷰 템플릿은 화면을 렌더링 하는데 최적화되어 있기 때문에 뷰만 관리하는 것이 효과적이다. 따라서 M.. 2023. 1. 4.
[Spring] 빈 생명주기 콜백 데이터베이스 커넥션 풀이나, 네트워크 소켓처럼 애플리케이션 시작 시점에 필요한 연결을 미리 해두고, 애플리케이션 종료 시점에 연결을 모두 종료하는 작업을 진행하려면, 객체의 초기화와 종료 작업이 필요하다. 스프링 빈의 라이프사이클 스프링 빈은 간단하게 다음과 같은 라이프 사이클을 가진다. 객체생성 -> 의존관계 주입 따라서 초기화 작업은 의존관계 주입이 끝난 후에 수행되어야 한다. 그럼 어떻게 의존관계 주입이 끝난 시점을 알 수 있을까? 스프링은 의존관계 주입이 완료되면 스프링 빈에게 콜백 메서드를 통해서 초기화 시점을 알려주는 다양한 기능을 제공한다. 또한 스프링은 스프링 컨테이너가 종료되기 직전에 소멸 콜백을 준다 스프링 빈의 이벤트 라이프사이클 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관.. 2022. 12. 28.
[Spring] 같은 타입으로 조회된 빈이 여러 개일 경우 @Autowired는 타입으로 빈을 조회한다. 만약 같은 타입으로 등록된 빈이 여러 개가 있을 경우 어떻게 될까? @Component public class FixDiscountPolicy implements DiscountPolicy {} @Component public class RateDiscountPolicy implements DiscountPolicy {} DiscountPolicy의 하위 타입인 FixDiscountPolicy와 RateDiscountPolicy 모두 스프링 빈으로 등록을 하였다. @Autowired private DiscountPolicy discountPolicy 이 상황에서 DiscountPolicy에 자동 주입을 실행하면 NoUniqueBeanDefinitionExce.. 2022. 12. 28.