Day82 - [Spring]Spring 프로젝트 맛보기

2021. 6. 13. 19:16Spring

이번에는 Spring 프로젝트는 어떻게 사용하는 건지 한번 맛만 봅시다.

 

이전 글에서, Maven 프로젝트에 "pom.xml" 안에 특정 라이브러리를 다운로드 받는 코드까지 작성을 완료 했다면 아래와 같이 프로젝트가 생성 되어 있을 것입니다.

※ Maven 프로젝트명은 "SpringDI"

 

src/main/java 아래에 "ex01" 이라는 패키지를 만들고, SpringTest 클래스를 만들어 주세요.

 

그리고 아래와 같이 작성을 해줍니다.

그리고, "ex01" 패키지 안에 MainClass 도 하나 만들어 줍니다.

 

그리고, 위에서 만든 SpringTest 클래스를 객체화 해서 사용 해봅시다.

이전에, JAVA 에서는 이러한 형태로 객체화를 하고, 객체화 한 변수에 . 으로 접근을 했었죠?

 

src/main/resources 폴더 아래에 "application-context.xml" 파일을 만들고, 아래와 같이 작성해 줍시다. 

Spring 컨테이너에 SpringTest class 를 객체화 한 것 입니다.

 

그리고, main 에서는 아래처럼 사용할 수 있습니다.

 

그렇다면, class 안에 다른 class 를 가지고 있을 때는 어떻게 사용할까요?

JAVA 에서는 먼저 Chef class 를 객체화 하고, Hotel class 를 객체화 할 때, 생성자로 Chef 를 넣어주면 되겠죠?

Spring 에서는, .xml 파일에 아래처럼 사용합니다.

먼저, chef 를 컨테이너에 객체화를 하고, hotel 을 객체화하면서 위에서 만든 chef 객체를 넣습니다.

이 때, 생성자의 매개변수에는 constructor-arg 를 사용해서 넣습니다.

 

생성자를 통해서, 클래스를 넣었다면, 이번에는 setter 를 이용해 보죠

setter 를 이용해서 값을 집어 넣을때는, property 를 이용합니다. name 에는 setter 의 set 을 뺀 함수명을, value 에는 값을 넣습니다.

 

setter 를 이용해서 class 를 넣어봅시다.

위에서 이미 만든 객체를 property 의 ref 에 넣어주면 됩니다.

 

그리고, 대표적으로 컬렉션 프레임워크를 이용한 객체는 어떻게 사용할까요?

먼저, List<String> lists 는 아래처럼 사용합니다.

List<MemberVO> vo 는 아래처럼 사용합니다.

※ MemberVO class 는 멤버변수로 id 와 name 을 가지고 있음.

Map<String, Object> maps 는 아래처럼 사용합니다.

Map 은 Key 와 Value 로 이루어져 있죠?

<entry> 를 이용해서 값을 넣으면 되는데, Object 는 어떠한 class 도 들어갈 수 있으니, 위처럼 사용할 수 있습니다.

 

main 에서 사용은 아래처럼 합니다.

※ maps 는 딱히 사용하는 걸 만들지는 않았습니다.