본문 바로가기

스프링

(36)
[Thymeleaf] 연산, 속성값 연산 ​ 비교 연산 기호로 다음과 같이 비교 연산이 가능하다. ​ 조건 연산 삼항 조건 연산자처럼 조건문 사용이 가능하다. Elvis 연산 해당 변수가 존재한다면 해당 변수를 출력하고 없다면 : 뒤에 설정한 값이 출력된다. No-Operation 없다 해당 변수값이 존재한다면 해당 변수를 출력하고 없다면 동작을 안한다.(말 그대로 No-Operation) ​ 속성값 ​ 속성 값 추가 첫 번째, 두 번째 라인은 속성을 뒤에 혹은 앞에 추가한다.(공백 필요) 세 번째 라인은 클래스에 추가해준다. 체크 박스 체크 박스 체크 여부를 설정한다. 참고문헌 https://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html https://www.inflearn.com/c..
[Thymeleaf] 텍스트, spring EL, 객체, URL 링크, 리터럴 text, utext th:text는 태그 안의 텍스트를 전달 받은 값으로 표현하고자 할 때 사용한다. th:utext는 unescape text로 태그 안의 텍스트 값에 html 태그 값이 있다면 이를 반영하고자 할 때 사용한다. 첫 번째 라인은 각 문자열들과 ${}이라는 변수 표현식을 더하여 문장을 출력한다. 두 번째 라인은 각각 더하는 부분을 편리하게 하기 위해 ||이라는 Literal 표현식을 사용하여 문장을 출력한다. 세 번째 라인과 네 번째 라인은 utext를 활용하여 태그를 활용하여 문장을 출력한다. ​ Spring EL TestData Person testObject = new Person("GilSSang", 25, "컴공", "백앤드"); List testList = new ArrayL..
@RequestBody, @ResponseBody 시작하기에 앞서, @RequestParam은 요청 파라미터에 있는 값을 수신하여 저장했고, @ModelAttribute는 폼에 있는 작성된 파라미터 값을 수신하여 저장했다. 그렇다면 실제 HTTP 통신이 이루어질 때, 메세지 바디에 담긴 메세지를 수신하고 송신하려면 어떻게 해야할까? 이를 위해 존재하는 것이 HttpEntity, Request(Response)Entity, @Requestbody, @ResponseBody이다. 근데 이것들은 이전에 배운 @RequestParam, @ModelAttribute와는 다르게 메세지 컨버터(Message Converter)를 사용한다. 메세지 컨버터는 메세지를 자바의 심플 타입 혹은 복합 타입에 매핑될 수 있도록 컨터빙해주는 역할을 한다. 이 과정이 실제로 언제..
@ModelAttribute @ModelAttribute 사용 @ModelAttribute는 사용자가 전달하는 값을 오브젝트 형태(객체 형태)로 매핑해주는 어노테이션이다. 보통 폼을 통해 값을 전달할 때 자주 사용한다. ​ 설명하기에 앞서, 오브젝트 형태(객체 형태)로 매핑해주어야 하기 때문에 임의의 객체인 Person을 다음과 같이 구성하였다. @Getter @Setter @RequiredArgsConstructor public class Person { private String name; private Integer age; } ​ (1) @ModelAttribute 애노테이션 사용 @Slf4j @Controller public class request_mapping { @RequestMapping("/request_mappi..
@RequestParam @RequestParam 사용 @RequestParam은 사용자가 전달하는 값을 1:1로 매핑해주는 어노테이션이다. 보통 파라미터를 통해 값을 전달할 때 자주 사용한다. ​ (1) 파라미터 이름을 지정하고 받기 @Slf4j @Controller public class request_mapping { @RequestMapping("/request_mapping") public String visit(@RequestParam(name = "name") String name, @RequestParam(name = "age") Integer age, Model model) { model.addAttribute("name", name); model.addAttribute("age", age); return "ho..
RequestMapping RequestMapping RequestMapping에 대해 자세히 알아보자. 이전에 설명했던 것처럼 사용자는 웹페이지를 통해 어떤 요청을 해올 것이다. 그렇다면 우리는 그에 대해 어떻게 반응했는가하면, DispatcherServlet에서 핸들러가 있는지 조회하고 있다면 해당 핸들러를 다룰 핸들러어댑터를 찾아 진행했다. 우리는 흔히 RequestMappingHandlerMapping과 RequestMappingHandlerAdapter를 활용하여 @RequestMapping을 찾고 이를 처리한다고 했었다. 우리는 실제로 @RequestMapping을 사용하기 위해 @Controller 안에 @RequestMapping 애노테이션을 요청 URL과 함께 정의하고 해당 URL에 대해 어떤 동작을 실행할지에 대..
MVC, Spring MVC MVC MVC는 디자인 패턴 중 하나이다. MVC는 Model, View, Controller의 약자로 하나의 애플리케이션의 구성요소를 세 가지의 역할로 구분한 패턴이다. 그림으로 살펴보면 다음과 같다. ​ (1) Model Model은 애플리케이션이 무엇을 할 것인지를 정의한다. Model은 DB의 역할과 같이 사용자가 필요한 데이터를 가지고 있다. View나 Controller에 대한 정보는 알 수 없다. (2) View View는 사용자에게 무엇을 보여주기 위한 역할을 수행한다. 컨트롤러 하위에 종속되어 모델이나 컨트롤러가 보여주려고 하는 모든 필요한 것들을 보여준다. (3) Controller Controller는 모델을 어떻게 처리하고 로직을 어떻게 처리할지를 정해 로직을 수행한다. 사용자에게 ..
빈 초기화 콜백, 소멸전 콜백 스프링 컨테이너, 빈 생명주기 ​ 스프링 컨테이너의 생명주기 스프링 컨테이너 생성 => 스프링 빈 생성 => 사용 => 소멸 ​ 빈의 생명주기 스프링 컨테이너 생성 => 스프링 빈 생성 => 의존관계 주입 => 초기화 콜백 => 사용 => 소멸전 콜백 => 스프링 컨테이너 종료 ​ 지금까지 스프링 컨테이너 생성, 빈 생성, 의존관계 주입, 사용, 스프링 컨테이너 종료에 대해서는 알아보았는데 초기화 콜백과 소멸전 콜백 즉, 콜백에 대해서는 알아본 적이 없다. 실제로 우리가 콜백을 사용해야할 때 콜백을 어떻게 사용해야하는지 알아보자. 콜백을 이용할 수 있는 방법은 총 3가지인데 각각에 대해 알아보자 ​ 1. 인터페이스 (InitializingBean, DisposalBean) 첫번째는 Initializing..