본문 바로가기
WEB/✿Spring Framework

[Spring] 🔗1) IoC컨테이너(Spring 컨테이너)

by W_W_Woody 2022. 2. 24.

IoC컨테이너(=Spring 컨테이너)


IoC가 적용되기 전에는 애플리케이션 수행에 필요한 객체의 생성이나 객체와 객체 사이의 의존 관계를 개발자가 직접 자바 코드로 처리했었다. 하지만 IoC가 적용되면 객체 생성을 자바 코드로 직접 처리하는 것이 아니라 컨테이너가 대신 처리한다. 


IoC 컨테이너는 자바 객체의 생성, 소멸과 같은 라이프 사이클을 관리하며, 스프링 컨테이너로부터 필요한 객체를 가져와 사용하고 안넣으면 일반적인 객체가되어서 스프링의 기능을 심지못한다.


< Main.java >

ClassPathXmlApplicationContext 클래스컨테이너 객체를 생성할 수 있는 클래스

ClassPathXmlApplicationContext("설정정보") : 컨테이너를 생성하면서 설정정보를 넣어준다.

 

AbstractApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

 : "applicationContext.xml"설정파일의 <bean>태그를 읽어들여서 스프링 컨테이너를 생성


StudentBean studentBean = new StudentBean(); (X) 이 방식은 일반객체이므로 이렇게 만들어쓰지 않는다

 

 

getBean 메서드 : 객체를 컨테이너로부터 "식별자"를 통해 찾아서 읽어온다. Object타입으로 반환한다.

 

MessageBean messageBean = (MessageBean)context.getBean("messageBean");

 : 식별자 "messageBean"를 이용해서 객체를 컨테이너로부터 읽어온다.

 

getBean이 Object타입으로 반환하므로 원래의 타입으로 다운캐스팅(MessageBean로 변환)한다.

messageBean에 주소를 넣어준다. 그래서 컨테이너 안의 객체를 참조할 수 있다.

 

context.close();

: 컨테이너의 자원정리(어플리케이션 종료시 컨테이너의 존재하는 모든 Bean(객체)를 종료시킨다.안하면 context에 노란줄)

< Context.xml >

객체 생성을 위한 설정 기능들을 담당

단순한건 properties에해도되는데 복잡한 형태의 설정은 src/main/resources 경로에 xml만든다.

웹 쪽에서는 properies방식을 선호한다.

 

(시작 태그와 끝 태그 사이에 내용 또는 다른 태그가 없을 경우 단독 태그 형식으로 명시.)

* 위에서 에러가 나면 아래에서도 명시한 코드 못읽음

 

<bean></bean>

객체를 생성해서 컨테이너에 넣는데, 그걸 bean객체라고한다. 즉 컨테이너에 보관되는 객체   

(프로퍼티에 전달하기위한 Setter가 있는)자바빈과 똑같아서 빈 이라는 이름을 가진다.

 

name

bean객체를 식별할 때 사용되는 이름 (식별자는 유니크 해야함! ) 

 

class

bean객체를 생성할 때 사용할 클래스

 

 

'WEB > ✿Spring Framework' 카테고리의 다른 글

[Spring] 🔗6) 로깅처리  (0) 2022.03.05
[Spring] 🔗4) Spring MVC  (0) 2022.02.25
[Spring] 🔗3) AOP  (0) 2022.02.25
[Spring] 🔗Spring Framework  (0) 2022.02.24
[Spring] 🔗basic  (0) 2022.02.22

댓글