본문 바로가기

Spring12

[Spring] 생성자 주입, 순환 참조(circular reference) 문제 발생 공부하면서 테스트를 하다가 다음과 같은 에러를 만났다. Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'appConfig': Requested bean is currently in creation: Is there an unresolvable circular reference? 순환 참조에 관한 에러인데, 순환 참조가 발생하면 BeanCurrentlyInCreationException이 발생한다. 순환 참조가 무엇인지 왜 발생했는지 알아보자. 문제 발생 이유 순환 참조는 두 가지 조건이 부합하면 발생한다. 1. 빈 A와 빈 B가 둘 다 서로를 의존.. 2023. 4. 21.
[Spring] XML로 빈 등록하는 방법 스프링에서 설정 파일의 종류는 두 가지가 있다. java 파일과 xml 파일 자바 설정 파일과 XML 설정 파일의 작성법에 대해 알아보자. 예시> UserDao에 ConnectionMaker가 의존한다. public class UserDao { private ConnectionMaker connectionMaker; public void setConnectionMaker(ConnectionMaker connectionMaker) { this.connectionMaker = connectionMaker; } } public class DConnectionMaker implements ConnectionMaker { @Override public Connection getConnection(){...생략.... 2023. 4. 21.
[Spring] ObjectMapper Jackson에서 제공하는 ObjectMapper는 serialize(자바 객체를 JSON으로 변환) , deserialize(JSON을 자바 객체로 변환) 할 때 사용한다. 1. Jackson 라이브러리 종속성 추가한 후 사용 Maven> com.fasterxml.jackson.core jackson-databind 2.12.3 Gradle> // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3' 2. Java Object -> JSON ObjectMapper mapper = new Objec.. 2023. 1. 17.
[Spring]쿠키(Cookie) 1. 쿠키란? - 이름과 값으로 구성된 정보 - 클라이언트를 식별하기 위해 사용 - 아스키 문자만 저장 가능 (한글은 URL인코딩해서 저장해야함.) - 처음 요청할 때 서버에서 생성 후 브라우저에 저장 - 유효기간 이후 자동 삭제 1. 클라이언트가 서버에 처음 요청 2. 서버에서 쿠키 생성 후 응답헤더에 쿠키를 추가하여 응답 HTTP/1.1 200 Set-Cookie:id=qqqqq Content-Type: text/html;charset=UTF-8 Content-Language: ko-KR 3. 브라우저에 쿠키 저장 4. 다음 요청 시 쿠키를 요청 헤더에 넣어서 요청. POST /ch1/login/loing HTTP/1.1 Host: localhost Connection: keep-alive Cooki.. 2022. 8. 9.
[Spring] redirect와 forward 컨트롤러에서 뷰로 넘겨줄 때 총 세가지 경우가 있다. 일반적으로 뷰이름을 반환하는 경우 redirect를 반환하는 경우 forward를 반환하는 경우 총 세 가지 경우의 차이점에 대해 알아보도록 하자. 1. 일반적으로 뷰이름을 반환하는 경우 1. "/register/add"로 요청 2. DispatcherServlet이 입력부분 처리하고 Controller에게 전달 3. Controller가 "registerForm"(뷰이름)을 반환하여 다시 DispatcherServlet에게 전달 4. InternalViewResolver가 뷰의 진짜 경로를 반환 (ex) /WEB-INF/views/registerForm.jsp) 5. JstlView에게 전달, JstlView가 모델을 registerForm.jsp에.. 2022. 8. 9.
[Spring] @RequestParam과 @ModelAttribute 컨트롤러 매개변수 앞에 붙일 수 있는 애노테이션은 두 가지가 있다. 이 애노테이션은 HTTP 요청 파라미터와 매개변수를 연결해주는 역할을 한다. @RequestParam 매개변수 타입이 String, 기본형일 경우 HTTP 요청 파라미터와 연결할 매개변수 앞에 작성하는 애노테이션 매개변수 타입이 String, 기본형일 때 생략되어있음. 속성 - name : 파라미터 이름, 생략 시 매개변수 이름과 동일 - required : 파라미터 필수 여부 (true/ false), 생략 시 디폴트는 true - defaultValue : 파라미터 디폴트 값 지정 @RequestMapping("/rp") public String main(@RequestParam(name="year", required=true) in.. 2022. 8. 4.