뉴렉처 Spring 강의 5강

 

Spring DI를 위한 이클립스 플러그인 설치하기

 

조립을 하기위한 스프링에게 보내줄 지시서가 필요하다 (XML , 어노테이션)

 

현장에서 쓰고있는 가장 기본적인버전 XML

 

이클립스버전의 스프링을 지원하는 플러그인을 받아줘야한다.

Help 메뉴의 Eclipse Marketplace로 들어가준다 ( 이클립스가 사용할수있느 플러그인들을 검색해서 사용할수있다 )

 

위에있는 Spring Tools4는 Boot기반으로 프로젝트를 만들때 사용하고

Spring을 이해하기 위한 내용으로써 Spring Tools3 (Add-On) 을 Install 해준다.

기본적인 옵션을 다 선택한뒤 Confirm

동의페이지에서 동의선택을 한뒤 Finish

*설치 오류시 이클립스 재실행하고 다시 설치하면된다.

Tools는 Spring을 사용하는데에 있어서는 꼭필요한것은 아니다, 설정파일을 도움받기위해서 다운받는용도

이클립스와 메이븐만으로도 충분히 Spring을 개발할수있다.

 

설치후에 이클립스 다시시작 창이 나오면 이클립스를 다시시작해준다.

 

재시작후 Tools설치가 끝났다면 DI패키지 우클릭 -> New -> Other 

Other를 보면 Spring 폴더가 추가되었다. Spring -> Spring Bean Configuration File -> Next

setting이라는 이름의 xml 파일을 추가한다 (Spring Bean Configuration File 의 도움을 받으려고 하는것)

 

파일을 추가하게되면 설정 파일 네임스페이스가 자동으로 등록되는것을 볼수있다. (3.0 플러그인을 설치하는이유)


Spring DI 지시서 작성하기

(Spring Bean Configuration)

 

Exam객체와 Console객체가 서로 결합해서 사용하는 관계이다.

 

일반적인 형태로 조립하는방법인 set메소드를 구현해준다.

 

Program

ExamConsole (인터페이스)

ExamConsole을 구현받은 Gird와 Inline 클래스에 인터페이스 메소드를 구현해준다.

기본생성자 또한 각 구현클래스에 추가해준다.

이렇게 추가를하게되면 인젝션이 생성자와 set함수를 통해 추가하는 방법이 가능하다.

 

 

Program클래스에서 예를들어본다.

Exam의 객체가 바뀌는 경우나 Console 객체가 바뀌는경우에는 정적으로 코드를 입력하는것보다는

바뀌는 객체의 경우 설정으로 빼주는것이 바람직하다. 

결합관계또한 설정으로 빼주는것 

스프링에게 지시하는 방법으로 코드를 변경할것

주석처리하고 설정으로 빼주도록한다.

 

설정해서 빼주었을때 Console객체가 필요한데 설정으로 빼주었을때 Spring이 객체화 해서 전달해준다.

 

 

 

지시서만들기 (XML)

setting.xml 이동 

스프링은 bean이라는 태그를 이용해서 생성할 객체를 지시해야한다.

Exam exam = new NewlecExam(); 형태를 xml로 지시하는 방법

id : bean의 명칭 ( 꺼내올때 )

class : 패키지와 생성할 객체

*생성할 객체는 반드시 패키지명까지 같이 써주어야한다 (같은이름의 클래스가 다른패키지에 존재할수있기때문)

 

ExamConsole console = new GridExamConsole(); 형태를 xml로 지시하는 방법

같은방식으로 지시해준다.

console.setExam(exam); 형태를 xml로 지시하는방법

ExamConsole을 지시한 bean을 열어주고 그안에 <property> 태그를 사용한다.

 

name : setter함수의 이름을 입력 (set은 생략해주는것이 규칙이다)

value : 단순값일 경우에 사용 

ref : 주소값일 경우에 사용

 

*현재 setExam(exam)의 인자값은 주소값이니깐 ref 를 사용해 인자값을 넣어준다.

value형(단순값)일경우나 ref형(주소값)일경우 에 맞춰서 값을 넣어준다.

name은 setExam을 생략해 나타내는것 (중요)


 

Spring Ioc 컨테이너 이용하기

(ApplicationContext 이용하기)

 

setting.xml을 이용하기 위함 

ApplicationContext 생성하기

 

(ex)ApplicationContext context = new ClasspathXmlAplicationContext("config.xml");

 

ApplicationContext 종류
ClassPathXmlApplicationContext 어플리케이션 루트로부터 경로를 지정하고싶을때(보편적)
FileSystemXmlApplicationContext 파일시스템의 경로를 이용해서 루트로부터 사용할때
XmlWebApplicationContext 웹의 URL을 통해 지정
AnnotationConfigApplicationContext 어노테이션으로 두었기때문에 스캔하는 방법

스프링을 사용하기위해서 스프링라이브러리를 가져와야한다.

( AppicationContext는 스프링 라이브러리 )

스프링라이브러리를 가져오기위해선 (1)직접 다운로드해서 가져오는방법과

(2) 메이븐프로젝트로 만들었다면 Dependencies 로 지정해서 사용할수있다.

 

(2)번의 방법을 사용하기위해 프로젝트를 메이븐 프로젝트로 바꾸어준다.

 

 

이클립스 사용시 프로젝트를 메이븐 프로젝트로 바꾸는방법 

프로젝트 우클릭 -> Configure -> convert to Maven Project

 

메이븐 fom 파일을 설정하기위한 기본적인 설정

 

Finish를하면 메이븐 프로젝트로 바뀌면서 fom파일이 추가된다.

현재 plugin오류는 강의내용과 다르게 오류가 나오길래 프로젝트 우클릭 > RunAs > Maven Install 후에 Maven > Update Project 해주니 해결되었다.

 

 

Dependencies를 이용해 라이브러리를 추가한다.

( 메이븐 저장소의 Global Repositories 가 리빌드 인덱스가 되어있어야한다 )

 

springframework 검색후 spring-context 5.1.9버전을 가져온다

 

fom.xml에 코드가 추가되며 하단의 Dependency Hierarchy 를 보면 context를 사용하기위해 필요한 라이브러리들이 계층으로 전부 종속되어서 자동으로 가져오는것을 알수있다.

 

 

 

Program에서 이제 Bean을 받아 사용하기위해서는 받아온 라이브러리 스프링 Context의

ApplicationContext를 사용하고 ClassPathXml을 사용하기위해 src부터가 루트이기 때문에 경로를 써준다.

스프링 라이브러리를 가져왔으니 ApplicationContext를 import 할 수 있다. import를 해준다.

 

context가 지시서를 잘 읽고 지시서대로 객체를 만들며 인젝션까지 한 다음 Ioc컨테이너에 저장이 된것이다.

( 현재 context는 Ioc컨테이너의 구체적인 이름이라고 할수있다 )

 

 

사용하기위한 방식

(1) 이름을 통해 꺼내서 사용하는방식

이름을 통해 꺼내오는 방식은 캐스팅이 필요하다 ( 어떠한 객체인지 모르는 상태이기때문에 오브젝트형 이기때문 )

 

(2) 자료형명을 통해서 사용하는 방식 ( 형식변환을 할필요없고 클래스명을 깔끔하게 할수있어 더욱 선호되는 방법 )

 

자료형명은 형식변환을 할 필요가없다. 

( 만약 인터페이스형식이라면 그것에 참조된 것을 찾아준다 , 구현된 클래스가 두가지이상일 경우는 찾아줘야한다 )

 

 

테스트 실행 , 두가지 방식 다 잘 출력된다.

현재는 Grid로 되어있는것을 setting.xml에서 Inline방식으로 바꿔서 테스트해본다.

setting.xml만 수정했을뿐인데 Inline형식으로 잘 출력되는것을 볼수있다.

 

뉴렉처 스프링 8강 완

'Step by Step' 카테고리의 다른 글

Spring 공부 2021-03-17  (0) 2021.03.17
Spring 공부 2021-03-16  (0) 2021.03.16
Spring 공부 2021-03-12  (0) 2021.03.07
Spring 설정 정리  (0) 2021.03.06
JSP/서블릿 공부 2021-03-05  (0) 2021.03.05

+ Recent posts