스프링 컨테이너는 초기화와 종료라는 라이프사이클을 갖는다. 컨테이너의 초기화 -> 빈 객체의 생성, 의존 주입, 초기화 컨테이너의 종료 -> 빈 객체의 소멸 스프링 컨테어니는 빈 객체의 이러한 라이프사이클을 관리하는데, 컨테이너가 관리하는 빈 객체의 라이프 사이클은, 객체생성 -> 의존 설정 -> 초기화 -> 소멸의 과정을 거친다. 스프링 컨테이너를 초기화할 때 스프링 컨테이너는 가장 먼저 빈 객체를 생성하고 의존 주입을 한다.(의존 자동 주입) 의존 설정이 모두 완료되면 빈 객체의 초기화를 수행한다. 이때 빈 객체를 초기화하기 위해 스프링은 빈 객체의 지정된 메서드를 호출한다. 마지막으로 스프링 컨테이너가 종료하면 스프링 컨테이너는 빈 객체의 소멸을 처리하는데 역시 메서드를 호출한다. 빈 객체의 초기화..
이번장에는 자동 주입과 하께 사용되는 추가 기능, 컴포턴트 스캔을 소개하겠다. 컴포넌트 스캔은 스프링이 직접 클래스를 검색해 빈으로 등록해주는 기능이다. 설정 클래스에 빈으로 등록하지 않아도 원하는 클래스를 빈으로 등록하는 어노테이션 컴포넌트만 붙이면 되기에 설정코드가 줄어드는 효과를 볼 수 있다. 그럼 어떻게 해야할까? 기존 설정 클래스에서 빈 객체를 만드는 메서드를 다지우고 빈 객체를 만드려는 클래스에 @Component만 붙이면 된다. 간단히 코드를 통해 알아보겠다. 오류가 나지않고 찍히는 것을 확인할 수 있다. 원래라면 Config 클래스에 A, B, C에 대한 빈 등록을 해야했으나 @Component 어노테이션을 이용한 A, B 클래스는 설정 클래스에 빈 등록을 피해 코드의 양을 줄일 수 있다...
앞서 @Autowired를 통해 의존 자동 주입을 하는 코드와 DI에 대해 알아보았다. 이번엔 실질적으로 @Autowired의 사용법을 자세히 다뤄보겠다. Config 클래스를 자세히 들어다보자. 이 클래스에선 의존 대상을 설정 코드에서 직접 주입한다. 이렇게 의존 대상을 설정 코드에 직접 주입하지 않고 스프링이 자동으로 의존하는 빈 객체를 주입하는 기능도 있다. 이를 자동 주입이라고 한다. 자동주입을 설정하려면 @Autowird 또는 @Resource 어노테이션을 사용하면 된다. 이 책에서는 @Autowird만 설명한다. 그럼 저 클래스를 어떻게 바꿔야 할까! 답은 간단하다. A 클래스는 변동사항이 없다. 바뀐 것은 Config , B 클래스이다. 자세히 살펴보면 Config 클래스에 b( )메서드에서..
기존에 POJO 중 하나인 DI에 대해 포스팅한 적이있다. 이 글을 다채롭게 이해하고 싶다면, DI 부분만 일단 보도록 하자. https://0307kjb.tistory.com/8 7장. 스프링 삼각형과 설정 정보 스프링을 이해하는 데 POJO(Plain Old Java Object)를 기반으로 스프링 삼각형이라는 애칭을 가진 IoC/DI, AOP, PSA라고 하는 스프링의 3대 프로그래밍 모델에 대한 이해가 필수입니다. 스프링프레임워크를 0307kjb.tistory.com 여기서는 추가적으로 책을 통해 안 사실만을 적으려고 한다. DI에 대해 이해가 가지 않는다면 구글링을 통하길 바란다. 스프링을 이용해서 어플리케이션 개발을 하다보면 적게는 수십, 많게는 수백개의 이상의 빈을 설정한다고 한다. 설정하는..
스프링 프로젝트를 만들 건데, 우리는 Gradle vs Maven 중에 선택한다. 만약 Gradle과 Maven을 모른다면 이 사이트를 참고하도록 하자. https://bkim.tistory.com/13 Maven vs Gradle Maven vs Gradle 스프링 기반의 프로젝트를 시작하면서 Maven을 처음 접했다. Ant를 사용한적도 없었고 의존성 관리와 빌드 스크립트에 대한 지식도 없었기에 이런게 있나보다 하고 사용했었다. Maven bkim.tistory.com 간단하게 요약하자면 Maven과 Gradle은 특정 폴드 구조를 따라야 하며 maven 같은경우 루트 폴더에 pom.xml라는 파일이, gradle은 빌드를 할 그루비 코드가 존재해야한다. 지켜야 할 폴더구조(메이븐이든 그레이들 이든 ..
@RequestMapping 에서 method=RequestMethod.GET or POST가 추가되었습니다. 무엇을 의미할까요? 호출방식에 따라 같은 URL 요청이 들어와도 별개의 메서드가 처리할 수 있게 지원한 것입니다. https://hongku.tistory.com/122 SpringMVC :: @RequestMapping의 GET방식과 POST방식, GET 과 POST 차이 @RequestMapping의 GET방식 요청과 POST방식 요청 Request요청을 보낼때 GET방식으로 하는방법과 POST 방식으로 하는 방법이 있다. GET 방식으로 요청 뷰 페이지에서 form 태그 속성에 method 값을 GET으로 설정 hongku.tistory.com BindingResult는 뭘까요? 후에 추가..
이제 MVC에서 모델(Model)에 해당하는 구분을 구현해 봅시다. 모델은 컨트롤러에서 뷰로 전달해주는 정보입니다. 스프링MVC에서 모델을 생성하는 것은 DispaterServlet의 역할이죠. DispaterServlet이 생성한 모델에 대한 참조 변수는 @RequestMapping 어노테이션이 붙은 메서드에서 인자를 선언하기만 하면 자동으로 받을 수 있습니다. 그럼 들어가볼까요? 코드에서 model에 addAttribute( )메서드를 이용해 boardService.list( ) 메서드의 반환 값을 model에 추가하고 있습니다. 그리고 마지막으로 /board/list라는 문자열 값을 반환하고 있는데 이것이 바로 MVC모델의 마지막 요소인 뷰에 대한 힌트입니다. 이 힌트를 이용해 스프링 MVC Dis..
사실 저는 게시판 프로젝트를 혼자 진행한 바 있습니다. https://github.com/kimjongbuem/bbs-jong GitHub - kimjongbuem/bbs-jong Contribute to kimjongbuem/bbs-jong development by creating an account on GitHub. github.com 하지만 더욱 자세히 XML에 대해 이해하고자 책을 읽으며 글을 적게 되었습니다. 그렇다면 시작해볼까요? Java Spring Lagacy Project -MVC를 선택하면, @Controller는 제쳐두고 @RequestMapping에 집중하도록 합시다. @RequestMapping은 API 문서에서 이렇게 정의하고 있습니다. Annotation for mappin..
- Total
- Today
- Yesterday
- https://react.vlpt.us/
- https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html
- Co
- ㄴ
- https://wikidocs.net/68
- https://velog.io/@juno7803/React%EA%B0%80-%ED%83%9C%EC%96%B4%EB%82%9C-%EB%B0%B0%EA%B2%BD
- https://react.vlpt.us/basic/11-render-array.html
- https://jwprogramming.tistory.com/52
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |