일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백준
- API
- online
- Framework
- 알고리즘
- 저지
- Tornado
- spring
- OrientDB
- BAEKJOON
- 파이썬
- mariadb
- 자료형
- MongoDB
- r script
- 프레임워크
- 토네이도
- Judge
- 배열
- Java
- 오픈한글
- Python
- 연동
- 연결
- ubuntu
- AWS
- 자바스크립트
- 이클립스
- 설치
- r
- Today
- Total
맛동산
Simple Spring Maven에서 스프링 컨테이너 사용-1 본문
Simple Spring Maven 프로젝트에서 정적인 파일(설정파일 등)은 src/main/resources에서 관리하도록 함,
자바 코드는 src/main/java에 생성
src/main/resources에 스프링 컨테이너로 사용할 xml파일을 생성 후 내용을 작성하고 class에서 불러오는 식으로 사용하게 됨
우선 간단한 예를 들어
12345678910111213<span·style="color:·rgb(53,·53,·53);">·¬<?xml·version="1.0"·encoding="UTF-8"?>¬<!--·여그가·빈·팩토리·-->¬<beans·xmlns="http://www.springframework.org/schema/beans"¬————xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"¬————xmlns:p="http://www.springframework.org/schema/p"¬————xsi:schemaLocation="http://www.springframework.org/schema/beans·http://www.springframework.org/schema/beans/spring-beans.xsd">¬¬————<!--·spring.di.ch01·-->¬————<bean·id="message"·class="spring.di.ch01.MessageKr"/>·¬————¬</beans>¬</span>¶
- applicationContext.xml
1234567891011121314151617181920212223242526<span·style="color:·rgb(53,·53,·53);">·¬package·spring.di.ch01;¬¬import·org.springframework.context.support.AbstractApplicationContext;¬import·org.springframework.context.support.ClassPathXmlApplicationContext;¬¬public·class·Main·{¬¬————public·static·void·main(String[]·args)·{¬————————/*·설정파일(xml)로·부터·객체·주입(DI)·*/¬¬————————//·1.·스프링·설정파일로부터·스프링·컨테이너·생성¬————————AbstractApplicationContext·context·=¬————————new·ClassPathXmlApplicationContext("applicationContext.xml");¬————————//·2.·JVM·종료될·때·ApplicationContext를·종료하는·작업¬————————context.registerShutdownHook();¬————————//·3.·스프링·컨테이너에서·빈(객체)를·가져온다.¬————————MessageKr·message·=·(MessageKr)context.getBean("message");¬————————//·4.·스프링·빈으로·메서드·호출¬————————message.sayHello("홍길동");¬————————//·5.·어플리케이션·종료시·컨테이너에·존재하는·모든·빈(객체)·닫기¬————————context.close();¬————}¬¬}¬</span>¶
- spring.di.ch01.Main.java
123456789101112<span·style="color:·rgb(53,·53,·53);">·¬package·spring.di.ch01;¬¬public·class·MessageKr·{¬————public·MessageKr(){¬————————System.out.println("생성자");¬————}¬————public·void·sayHello(String·name){¬————————System.out.println("안녕하세요,·"+name+"씨");¬————}¬}¬</span>¶
- spring.di.ch01.Message.java
과 같은 파일들이 있을 때, Main을 실행하게 되면
AbstractApplicationContext context =
new ClassPathXmlApplicationContext("applicationContext.xml");
이 명령을 실행하며 applicationContext.xml에 작성된 행위를 하게됨(생성자의 메세지로 확인)
applicationContext을 보면<bean id="message" class="spring.di.ch01.MessageKr"/>라는 줄이 있는데 message라는 id로 spring.di.ch01.MessageKr의 객체를 생성하겠다는 뜻임
다시 Main으로 돌아와서 MessageKr message = (MessageKr)context.getBean("message"); 코드를 보면 message변수에 스프링 컨테이너에서 생성된 객체를 id를 통해 호출하여 넣어주는 행위를 하는 것 을 볼 수 있음(주입한다 라고 함)
이렇게 MessageKr 객체가 주입된 message는 기존방법처럼 함수를 호출할 수있게 됨
-> 스프링 프레임워크는 위와 같이 스프링이 객체를 관리하고, 필요할 때 주입하여 사용하는 패턴을 갖는데, 처음엔 객체 생성하는데 왜 굳이 파일 하나 더 만드는 고생을 해야하나 싶었는데 이것의 장점은 web프로젝트를 할 때 깨달을 수 있음.
'Web > Spring' 카테고리의 다른 글
Controller에서 Controller로 이동할때 (0) | 2017.05.11 |
---|---|
Controller에서 RequestMapping등 케이스(chap05) (0) | 2017.05.11 |
스프링 핵심만 정리(ing) (0) | 2017.05.11 |
Simple Spring Maven에서 스프링 컨테이너 사용-2 (0) | 2017.03.12 |
이클립스에 Spring IDE 설치 (0) | 2017.03.12 |