스프링을 시작하기에 앞서 가장 먼저 나오는 내용이 Maven이다.
웹 개발은 전혀 모르기에 Maven에 대해 먼저 정리할 필요가 있다.
1. 간단한 Maven 설명
자바용 프로젝트 관리도구 및 빌드 도구
java 코드와 프로젝트에 쓰인 자원등을 WAS가 인식할 수 있는 구조로 패키징하는 도구
필요한 라이브러리를 pom.xml(Project object Model)에 정의해 두면 네트워크를 통해서 라이브러리(jar파일)들을 자동으로 다운받아준다.
Life cycle : 미리 정해진 필드 순서가 있다. 이를 Life cycle이라 한다.
Phase : Life cycle의 각각의 단계를 Phase라 한다.
Goal : 특정 작업, 최소한의 실행 단위를 Goal이라 한다.
POM에 대해 자세히 설명이 되어있다. - https://goddaehee.tistory.com/199
*Reference
https://velog.io/@changyeonyoo/Maven-%EC%9D%B4%EB%9E%80
https://goddaehee.tistory.com/199
2. Maven project를 위한 pom 작성
https://github.com/yo-young/spring5fs/blob/main/sp5-chap02/pom.xml
3. 간단한 예제 구현
스프링 프레임워크에서 annotation이 자주 쓰인다. 따로 정리할 필요가 있다.
page 46
@Configuration annotation은 spring 설정 클래스로 지정한다.
@Bean annotation : 스프링이 생성하는 객체를 Bean 객체라고 부른다. 이 annotation이 붙으면 해당 method가 생성한 객체를 스프링이 관리하는 Bean 객체로 등록한다.
page 47
간단한 String return class
https://github.com/yo-young/spring5fs/blob/main/sp5-chap02/src/main/java/chap02/Greeter.java
AnnotationConfigApplicationContext 객체에 생성자 파라미터로 전달된 클래스에서 @Bean 설정 정보를 읽어와 Greeter객체를 생성하고 초기화한다.
https://github.com/yo-young/spring5fs/blob/main/sp5-chap02/src/main/java/chap02/AppContext.java
AnnotationConfigApplicationContext 클래스는 java설정에서 정보를 읽어와 Bean 객체를 생성하고 관리한다.
getBean() method : AnnotationConfigApplicationContext가 생성한 Bean 객체를 검색할 때 사용. 첫 번째 파라미터는 Bean 객체 이름, 두 번째는 객체의 type
https://github.com/yo-young/spring5fs/blob/main/sp5-chap02/src/main/java/chap02/main.java
*책에 있는 내용은 책을 다시 읽어보는 것이 좋겟다.
4. Singleton 객체
스프링은 기본적으로 @Bean annotation에 대해 한 개의 bean 객체를 생성한다.
그 bean 객체는 'sigleton 범위를 갖는다'고 표현한다.
5. 정리 및 포인트
스프링은 객체 컨테이너이다.
스프링의 핵심 기능은 객체를 생성하고 초기화하는 것이다. 관련된 기능은 ApplicationContext라는 인터페이스에 정의되어 있다.
AnnotationConfigApplicationContext클래스는 이 인터페이스에 알맞게 구현한 클래스 중 하나이다.
이 클래스는 자바 클래스에서 정보를 읽어와 객체 생성과 초기화를 수행한다.
XML이나 그루비 설정 코드를 이용해서 객체 생성/초기화를 수행하는 클래스도 있다.
5월 17일 업데이트
이전에 메이븐이 컴파일러인가? 하는 생각이 있었는데 지금 다시 보니 프로젝트 관리 도구였다.
참조한 블로그를 다시 보니 소스코드와 프로젝트에서 사용된 여러 자원들을 통합하여 WAS에서 인식할 수 구조로 패키징하는 것을 빌드라고 한다.
빌드 과정은 compile -> test -> package 라고 하니 메이븐은 컴파일부터 프로젝트를 배포할 수 있는 단계까지 도와주는 도구였던 것이다.
'Spring' 카테고리의 다른 글
| Ch.3 스프링 DI(Dependency Injection) (0) | 2022.05.17 |
|---|---|
| 스프링 공부를 위한 개발 환경 세팅! (0) | 2022.02.22 |