일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- spring
- 자바스크립트
- Python
- 알고리즘
- 연결
- r script
- 배열
- Java
- BAEKJOON
- 저지
- 연동
- 프레임워크
- OrientDB
- ubuntu
- mariadb
- AWS
- 토네이도
- MongoDB
- 파이썬
- Tornado
- r
- API
- online
- 오픈한글
- 자료형
- Framework
- 백준
- 이클립스
- 설치
- Judge
- Today
- Total
맛동산
Simple Spring Maven에서 스프링 컨테이너 사용-1 본문
Simple Spring Maven 프로젝트에서 정적인 파일(설정파일 등)은 src/main/resources에서 관리하도록 함,
자바 코드는 src/main/java에 생성
src/main/resources에 스프링 컨테이너로 사용할 xml파일을 생성 후 내용을 작성하고 class에서 불러오는 식으로 사용하게 됨
우선 간단한 예를 들어
<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
<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
<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 |