
스프링 부트 환경에서 코드를 작성하던 와중에 문득 그런 생각이 들었다. “나는 왜 의존주입할 때 생성자 주입을 주로 사용하고 있지?” 저 생각이 떠올랐지만 명확하게 이유를 설명할 수는 없었다. 그래서 이번 기회에 왜 생성자 주입을 사용하고 많은 사람들이 생성자 주입을 하는지 알아보겠다. 의존주입의 종류 의존주입의 종류에는 보통 세가지가 있다. 생성자 주입 의존관계가 변하지않고 필수로 필요한 경우에 사용 스프링에서는 생성자가 하나 있다면 @Autowired 생략가능 필드를 final로 선언가능 => 불변 선언 가능 @Service public class TestService { private final BoardRepository boardRepository; @Autowired public TestSer..

이번에 SpringBoot가 3.0.0 버전으로 업데이트가 되었다. 그래서 나는 Spring Initializ에서 3.0.0으로 프로젝트를 만들어 QueryDSL을 사용하여 프로젝트를 진행하려 했다. 프로젝트 버전 : SpringBoot 3.0.0, QueryDSL 5.0.0 그래서 build.gradle에서 QueryDSL에 대한 의존주입 및 여러 설정을 마치고 'complieQueryDSL'을 진행했는데 오류가 발생했다... java.lang.NoClassDefFoundError Unable to load class 'javax.persistence.Entity' javax.peresistence.Entity 에 대한 클래스가 없다고 하는것 같다.. (분명 이전버전 까지는 잘 됐는데...) 그래새 오..

이전에 간단한 게시판을 만들거나 했을 때는 HTML의 form 태그를 이용하여 데이터를 POST 했고 이를 @ModelAttribute를 통해 전달받았습니다. 그리고 @Validated, BindingResult를 통해 검증을 하고 오류가 있다면 다시 이 전의 등록폼으로 이동하는 방식으로 데이터를 검증했습니다. 그런데 이번에 블로그 프로젝트를 하는데에 게시글 또는 댓글 등을 POST 하는데 있어서 저는 AJAX 방식을 사용했고 이때는 @ModelAttribute가 아닌 @RequestBody 어노테이션을 사용했어야 했습니다. 그래서 이 때는 어떻게 데이터를 검증해야할까? 라는 생각에 공부를 하고 이를 기록해볼까 합니다. 간단한 코드 작성과 잘못된 입력의 결과 간단한 API를 작성해보겠습니다. @NotNu..

오늘은 스프링 MVC 구조에서 Controller부분을 공부하였는데 이에대해 간단히 정리해보겠다. @Controller 스프링에서 @ComponentScan 어노테이션을 이용하면 @Component, @Service, @Controller, @Repository 등 몇개의 어노테이션을 설정한 클래스파일을 빈 객체로 자동 등록해준다. 이 때 컨트롤러로 사용할 클래스는 @Controller 어노테이션을 이용해 빈 객체로 등록함과 동시에 명시적으로 컨트롤러로 사용할 것임을 알린다. @Controller public class ControllerSutydy { } @RequestMapping @RequestMapping 어노테이션을 사용하면 전달되는 URL을 보고 매핑되는 메서드가 있으면 실행한다. 매핑되는 U..

앞서 Servlet을 통해 동적 웹 페이지를 만들 수 있다고 하였고 이를 자바코드 내에 HTML을 넣어 작성하였다. 하지만 이러한 방식은 굉장히 복잡하고 비효율적이다. 이러한 이유로 HTML코드안에 동적으로 변경해야할 부분에 자바 코드를 넣음으로서 동적 웹 페이지를 만드는 기술인 템플릿 엔진이 나왔는데 그 기술 중 하나가 JSP인 것이다. JSP란? HTML 코드에 자바 코드를 넣어 동적 웹 페이지를 생성하는 템플릿 엔진이다. JSP를 사용하기 위한 라이브러리 설정 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'javax.servlet:jstl' HTML 파일 내부에 어떻게 자바코드를 넣을까? JSP에는 스크립트 ..

서블릿이란 뭘까? Java를 기반으로 웹 페이지를 동적으로 만들어줄 수 있는 프로그램을 뜻한다. 서블릿 내에 HTML도 작성할 수 있는데 if, else 또는 반복문을 이용하여 동적이 페이지를 만들 수 있는 것이다. Servelt프로그래밍에서 Servlet으로 등록하기 위해 @WebServlet 어노테이션을 붙여야 한다. @WebServlet(name = "requestParamServlet", urlPatterns = "/request-param") public class RequestParamServlet extends HttpServlet { @Override protected void service(HttpServletRequest request, HttpServletResponse respons..
- Total
- Today
- Yesterday
- arraylist
- 사탕 게임#백준#3085
- list
- java
- 4673번
- 자바
- controller
- 1978
- 오류
- 백준#잃어버린 괄호#1541
- 회고
- 백엔드#게시판
- 프로그래머스
- 게시판#자바#JPA#Entity
- 백준
- 대충 만든 자판
- querydsl
- HTTP#HTTP특징
- 덧칠하기
- 1316번
- Spring
- MVC
- 스프링
- 서블릿#Servlet
- 7568
- springboot
- this()
- 백준#서강근육맨#20300
- 11659
- 파이썬
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |