티스토리 뷰
Goal
- 일반 Java 프로젝트와 Spring 프로젝트의 개념적인 차이
- 실제 구현을 통한 두 프로젝트의 차이 비교
1. Java파일을 이용한 프로젝트 실행
- 일반 Java 프로젝트 : 순수 Java를 가지고 프로젝트 처리.
- Spring 프레임워크 : pom.xml파일을 통해 모듈을 불러와 프로젝트를 처리.
2. 스프링을 이용한 개발
- resources : Java를 통한 개발을 도와주는 파일들을 보관하는 폴더.
- 스프링은 IOC라는 컨테이너안에 필요한 객체(bean)들을 명시한 후, 필요할 때 마다 IOC에서 객체를 빼와서 사용.
- applicationContext.xml : IOC 컨테이너 역할을 수행하며, bean id에 원하는 객체를 명시하여 사용한다. schema를 정의하는 부분(beans xmlns= ~)은 거의 동일하며 bean id ~ 부분만 수정하여 사용함.
1) applicationContext.xml 코드 예시
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="tWalk" class="lec03Pjt001.TransportationWalk" />
</beans>
- bean id ~을 통해 id, 패키지, 클래스를 명시해주면, new를 통해 객체를 생성하지 않아도(기존 Java프로젝트 방식) applicationContext.xml 파일을 통해 객체가 생성됨(메모리에 로딩됨)
<bean id="tWalk" class="lec03Pjt001.TransportationWalk" /> <!-- 현재 패키지명 + 클래스의 풀 네임 -->
3. 스프링을 이용한 개발 예시
- 기존에는 Class를 만들고 인스턴스를 사용하기 위해 new라는 키워드를 이용하여 생성자를 호출함. (메모리에 동적로드) -> 이후, 인스턴트를 이용하여 메서드나, 변수에 접근
- 스프링에서는 더 효율적으로 객체를 사용하기 위해 xml파일(컨테이너)안에 빈을 생성하여 객체에 접근함.
1) xml파일을 통해 MainClass 실행
- GenericXmlApplicationContext 객체를 생성. 생성시에 파라미터로 리소스의 내용 명시
-> classpath:applicationContext.xml : 컨테이너 생성완료 (1. 컨테이너를 가져옴)
TranspotationWalk transpotationWalk = ctx.getBean(~) : (2. 생성한 컨테이너에서 변수에 빈을 담아서 객체를 사용)
package lec03Pjt001;
import org.springframework.context.support.GenericXmlApplicationContext;
public class MainClass {
public static void main(String[] args) {
//기존에는 new로 객체를 사용
// TransportationWalk transpotationWalk = new TransportationWalk();
// transpotationWalk.move();
// 스프링 컨테이너에 접근
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:applicationContext.xml");
//컨테이너에 접근하기 위한 data type, 컨테이너를 가져옴
TransportationWalk transportationWalk = ctx.getBean("tWalk", TransportationWalk.class);
// 컨테이너에 있는 bean을 가져옴 ID와 data type 입력.
transportationWalk.move();
ctx.close(); //java에서는 외부 리소스 사용 후 반환을 해야함.
}
}
2) 코드 종합 및 실행결과
-일반 실행과 다르게, 객체를 생성하는 로그가 추가되어 결과 앞뒤로 빨간색 메세지가 보임
즉, 스프링 프레임워크에서는 Java 코드만으로 객체를 이용하지 않고, 리소스를 이용하여 사용한다.
그 과정은 1. resourse파일에 xml파일 생성 후 bean객체 명시 2. main파일에서 사용으로 이루어진다.
- 더 알아보기
스프링 방식으로 객체를 사용하는 것도 번거로운데 왜 이렇게 사용하는지.
* 이클립스 괜찮은 폰트 설정
나눔고딕코딩(네이버) 다운로드 -> 이클립스 window창 -> Preferences -> General -> Appearance -> Colors and Font -> Java -> Java Editor Text Font -> 원하는 글꼴 선택 -> 적용
* 주석 전체 설정 및 제거 단축키
- 전체 / 주석 : Ctrl + /
- 전체 /* 주석 : Ctrl + Shift + /
- 주석 풀기 : Ctrl + Shift + \(역슬레시)
'Spring > 인프런 - Spring' 카테고리의 다른 글
4. DI(Dependency Injection) (0) | 2020.03.19 |
---|---|
2. 스프링 프로젝트 생성 (Spring) (0) | 2020.03.08 |
1. 스프링 개요 (0) | 2020.03.03 |
- 20200319
- 20200510
- 20200420
- 20200512
- 20200504
- 20200503
- 20200406
- 20200317
- 20200502
- 20200622
- 백준
- 20200413
- 20201204
- 20200425
- chapter8
- 20200428
- 20200424
- chapter7
- 20200415
- 20200417
- 20200421
- 20200330
- 20200429
- 20200427
- 20200423
- likelion
- 생활코딩리눅스
- 20200804
- 20200403
- 20200624
- Total
- Today
- Yesterday