Maven을 이용한 Spring설치
2. Maven설치
- http://maven.apache.org/ 에서 다운로드
- 환경설정 — 고급시스템 설정 보기
3. 이클립스 설치
4. 메이븐 프로젝트 생성
- pom.xml 작성
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sp5</groupId>
<artifactId>spring5-first</artifactId>
<version>0.0.1-SNAPSHOT</version><dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
</dependencies><build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
</plugins>
</build></project>
> artifactId : 프로젝트 식별자
> dependencies — group, artifactId, version : 5.0.2 버전의 spring-context 사용
> build — artifactId, version, configuration 빌드 도구 명, 컴파일 자바 버전
- 메이븐을 설치 할 경우 [사용자 홈 폴더]\.m2\ 에 폴더가 생긴다.
개인적으로 c드라이브 용량이 적기에 심볼릭 링크로 d드라이브에 설치 하도록 유도.
- 메이븐 컴파일
d:\dev\java\first_workspace> mvn complie
- 만약 LifecyclePhaseNotFoundException 에러 발생시 처리
1. 라이프사이클 첫 단계 호출
> mvn install3. 플러그인 버전을 해결하기 위해 Maven은 먼저 프로젝트의 POM을 확인하고 구성된 플러그인 저장소에 배포 된 플러그인의 최신 릴리스 버전으로 폴백합니다.> mvn org.apache.maven.plugins:maven-compiler-plugin:compile
- 플러그인 버전을 해결하기 위해 Maven은 먼저 프로젝트의 POM을 확인하고 구성된 플러그인 저장소에 배포 된 플러그인의 최신 릴리스 버전으로 폴백합니다.
> mvn org.apache.maven.plugins:maven-compiler-plugin:compile
- 기본폴더 생성
// 웹프로젝트 기본구조, []는 폴더
first-workspace>
pom.xml
-- [src]
---- [main]
------ [java]
------ [resources]
------ [webapp]
--------- [WEB-INF]
--------- web.xml
- 메이븐 프로젝트 임포트[File->Import->Maven->Existing Maven Projects]
*만약 체크가 안될 경우 [해당 폴더를 복사] > [폴더 명 변경] > [Root Directory 에 변경된 폴더 지정] -> Finish
5. 간단한 소스 테스트
- 순서 : 간단한 클래스파일 생성 > Bean사용 > 테스트
- Car클래스 생성
/src/main/java/Car.java
package test;public class Car {private String name; public String getCar() { return this.name; } public void setCar(String name) { this.name = name; }}
- Run 클래스 생성
/src/main/java/Run.java
package test;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;@Configurationpublic class Run { @Bean public Car go() { Car c = new Car(); c.setCar("간다"); return c; }}
- Main클래스 생성
/src/main/java/Main.java
package test;import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class Main { public static void main(String[] args) { AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(Run.class); Car g = ctx.getBean("go", Car.class); Car g1 = ctx.getBean("go", Car.class); System.out.println("싱글톤 적용됨, g == g1 : "+(g == g1)); String msg = g.getCar(); System.out.println(msg); ctx.close(); }}
- Run (Ctrl+F11)
*빈 생성시 Singleton으로 생성되는 것을 확인 할 수 있다.