Spring-(1) 설치 및 시작

2 분 소요

SPRING 시작 및 설치

  • https://spring.io/ 로 접속
  • Projects - Spring Tools 4 - Spring Tools 4 for Eclipse - 4.9.0 WINDOWS 64 BIT 다운로드
  • Main 화면 - QUICKSTART - 참고해서 공부 가능
  • Projects - Spring Framework - LEARN 탭 클릭 - spring framework 4.3 구글 검색 - Spring Framework Reference Documentation 기술문서 클릭 - https://docs.spring.io/spring-framework/docs/4.3.30.RELEASE/spring-framework-reference/htmlsingle/ - https://github.com/spring-projects/toolsuite-distribution/wiki/Spring-Tool-Suite-3
  • 이클립스 작업폴더 경로 지정 - help - eclipse marketplace - spring 검색하기 - spring 관련 플러그인 검색 가능 - 괜찮은 plugin이 없다면 수동설치 고려할 것.
  • 구글 검색 - eclipse spring plugin 검색 - 직접 수동 설치 가능
  • help -install new software - add - STS 이름 작성 - http://dist.springsource.com/release/TOOLS/update/e4.8/ 경로 넣기
  • help - About Eclipse IDE - Spring IDE 아이콘 확인
  • New - Other - Spring - Spring Legacy Project - Next - Simple Spring Maven - Project name: step00_sample - Select Spring version : 3.2.3 -Finish
  • 프로젝트 오른쪽 마우스 클릭 - build path - Libraries - jdk 1.8로 수정 - Java Compiler - Compiler compliance level - 1.8로 설정 - 왼쪽 Project Facets - JAVA 1.8 - Runtimes - jdk1.8.0_201 설정
  • Project Explorer - pom.xml - 1.8 - 4.3.3으로 수정 - 버전 추후 수정 예정
  • new -other -spring -Spring Bean Configuration File - applicationContext.xml 파일로 생성 - context - 밑단에 context-4.3.xsd 체크 클릭
  • Maven ClassNotFound 에러 발생 시 - Maven Repositories - Local Repository 삭제후 다시 설치
  • 컨테이너 만들때 객체 자동 생성 - 객체를 가져와서 사용 가능 - ```xml // applicationContext.xml
<bean id="p1" class="model.domain.Person" scope="prototype"/>
```java
// RunTest.java
// 컨테이너 기능의 객체 생성
	public static void main(String[] args) {
		// 컨테이너 기능의 객체 생성
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		
		
		// Person 객체 받아서 활용
		Person p = (Person)context.getBean("p1");
		p.setAge(100);
		System.out.println(p);
		
		Person p2 = context.getBean("p1", Person.class);
		System.out.println(p2);
	}

실행 결과 기본 생성자 setAge() Person [name=null, age=100] 기본 생성자 Person [name=null, age=0]

  • New -Other- Spring- Spring Legacy Project -
  • New -Project- Java Project - step01_DI 오른쪽 마우스 클릭 - Configure - Convert to Maven - groupId: playdata
  • step01_DI 오른쪽 마우스 클릭- Spring -Add Spring Project Nature
  • Dependencies - Add… - spring-context 검색 - spring-context : 4.3.3.RELEASE
<!-- public Customer(String name, int age, Car car) -->
	<bean id="c1" class="model.domain.Customer">
		<constructor-arg value="유재석"/>
		<constructor-arg value="77"/>
		<constructor-arg ref="car"/> <!-- 의존성 객체를 주입함 bean id="car" -->
	</bean>


<bean id="car" class="model.domain.Car">
		<constructor-arg value="그렌저"/>
		<constructor-arg value="77"/>
	</bean> 
public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("di.xml");
		// Car c = context.getBean("car", Car.class);
		Customer c = context.getBean("c1", Customer.class);
		System.out.println(c);
	}

실행 결과 Car(String carName, int carNumber) Customer(String name, int age, Car car) Customer [name=유재석, age=77, car=Car [carName=그렌저, carNumber=77]]

의존성 객체 주입된 Car 객체가 먼저 생성되고, 그다음 Customer 객체가 생성된다

<bean id="car" class="model.domain.Car" scope="singleton">
		<property name="carName" value="소나타"/>
		<property name="carNumber" value="88"/>
		
	</bean>

	<bean id="c1" class="model.domain.Customer" scope="singleton">
		<property name="name" value="백종원"/>
		<property name="age" value="50"/>
		<property name="car" ref="car" />
	</bean>
public static void main(String[] args) {
		ApplicationContext context = new ClassPathXmlApplicationContext("di2.xml");
		
		Customer c = context.getBean("c1", Customer.class);
		System.out.println(c); //c.toString() - Object의 메소드는 주소값 반환 로직
		
		Customer c2 = context.getBean("c1", Customer.class);
		System.out.println(c2);
		
		System.out.println(c.getCar());
		System.out.println(c2.getCar());
	}

실행 결과 Car() setCarName(String carName) setCarNumber(int carNumber) Customer() setName(String name) setAge(int age) setCar(Car car) Customer [name=백종원, age=50, car=Car [carName=소나타, carNumber=88]] Customer [name=백종원, age=50, car=Car [carName=소나타, carNumber=88]] Car [carName=소나타, carNumber=88] Car [carName=소나타, carNumber=88]

기술문서 참고

https://docs.spring.io/spring-framework/docs/4.3.30.RELEASE/spring-framework-reference/htmlsingle/#beans-setter-injection

Whale을 통해 기술문서 참고하기 웨일(Whale) - 오른쪽 스페이스에서 보기 - https://docs.spring.io/spring-framework/docs/4.3.30.RELEASE/spring-framework-reference/htmlsingle/

카테고리:

업데이트:

댓글남기기