스프링 프로젝트를 진행하기 앞서 스프링의 주요 특징을 알아봅시다.
스프링의 주요 특징
POJO(Plain Old Java Object) 기반의 구성
- 자바의 언어 사양 외에 어떠한 제한에 묶이지 않은 자바 오브젝트
- 기술적으로 어렵기 때문에 미리 정의된 어노테이션을 보통 사용
의존성 주입(DI)을 통한 객체 간의 관계 구성
- 하나의 객체가 다른 객체의 의존성을 제공하는 기술
- 밖에서 생성하여 넣어주는 것
AOP(Aspect Oriented-Programming) 지원
- 로깅이나 인증 시스템과 같은 횡단 관심사와 분리하여 모듈성을 증가시키는 프로그래밍 패러다임
소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴
Lombok
getter/setter, toString(), 생성자 등을 자동으로 생성해주는 라이브러리입니다.
CMD로 다운로드 받은 Lombok 위치로 가서 Lombok.jar를 실행합니다.
javar -jar lombok.jar |
IDE를 찾을 수 없다고 나오네요 ㅎㅎ;;
Specify location을 클릭하여 STS의 위치를 찾아주었습니다.
찾았으면 오른쪽의 Install / Update를 클릭합니다.
lombok이 생겼네요 ㅎㅎ 제대로 설치되었습니다.
pom.xml에 Lombok 라이브러리를 추가해줍니다.
<!-- Lombok lib -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.18</version>
</dependency>
Lombok 오류가 발생할 수 있으니 버전에 맞는 log4j버전을 1.2.17로 변경해줍니다.
Log4j : 프로그램을 작성하는 도중에 로그를 남기기 위해 사용되는 자바 기반 로깅 유틸리티 (디버그용 도구로 사용)
잘 변경된 것을 확인할 수 있습니다.
Test
테스트는 junit을 사용하여 진행합니다.
spring-test가 있는지 확인하고 없으면 추가해줍니다.
<!-- Spring-Test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
DI(Dependancy Injection)
Chef.java
package org.zerock.ample;
import org.springframework.stereotype.Component;
import lombok.Data;
@Component
@Data //데이터 저장
public class Chef {
}
Spring에서 자동으로 생성해주는 어노테이션들이 있습니다.
@Controller - URL 맵핑
@Service - 처리 부분
@Reqository - DB 관련
@Component
@RestController
@Advice
Restaurant.java
package org.zerock.ample;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import lombok.Data;
import lombok.Setter;
@Component
@Data //getter setter을 대신함
public class Restaurant {
@Setter(onMethod_ = @Autowired)
// lombok의 자동생성된 setter로 DI적용
private Chef chef;
}
src > main > webapp > WEB-INF > spring 에 있는 root-context.xml을 확인해봅시다.
오른쪽 마우스 클릭 > Open with > Spring Config Editor로 열어줍니다.
sts 4 버전에서는 위의 에디터가 없기 때문에 Spring 환경설정 part 1.에서 나온 방법으로 패키지를 설치해야 합니다.
(설치해도 안나오면 삭제하고 재설치하세요.)
열리면 Namespaces에서 context를 추가로 체크해줍니다.
xmlns:context="http://www.springframework.org/schema/context"
beans에 추가됩니다.
자동으로 생성하기 위해 해당 위치에 context:component-scan을 추가합니다. (클릭!)
기본 패키지의 org.zerock.sample 밑의 모든 패키지를 찾게 됩니다.
즉, beans안에 만들어 놓은 @Component를 가진 Chef와 Restaurant를 자동으로 생성합니다.
beans 그래프를 보면 잘 생성된 것을 확인할 수 있습니다.
'Java > Spring' 카테고리의 다른 글
Log4j error (org.apache.log4j.Logger cannot be resolved to a type) (0) | 2021.02.27 |
---|---|
Spring Legacy Project part 2. (JUnit Test) (0) | 2021.02.26 |
Spring Legacy 개발환경 part 2. (0) | 2021.02.24 |
Spring Filter 적용하기 (0) | 2021.02.22 |
Spring Framework Tomcat 연동 (0) | 2021.01.22 |