STS4 다운로드와 Spring 이해
이제 다운로드받은 파일 압축을 풀텐데 간혹 jar파일은 압축을 푸는 과정에서 깨지는 경우가 있어서 7-Zip으로 압축을 풀어보겠다.
7zip으로 풀어준다
압축을 풀어 나온 폴더에서
contents.zip을 c드라이브에 풀어준다.
sts sts-4.8.1.RELEASE 폴더는 편의상 sts4로 파일명을 바꾼다
폴더를 열고 들어가서 SpringToolSuite4.exe 를 우클릭 작업표시줄에 고정해주자 (귀차니즘 해결ㅎㅎ)
바로 아래 SpringToolSuite4.ini를 실행
맨 아랫줄 에 -Dfile.encoding=utf-8 추가 //모든 workspace에 대해서 인코딩 적용
이제 STS실행~
원하는 경로에 Workspace를 지정해줍니다.
그럼 짜란~
Create new Spring Starter Project를 사용하면 간단하게 프로젝트를 사용할 수 있지만 지금은 legacy 프로젝트를 할거니까 help > Eclipse Marketplace >
install 클릭 후 confirm
[ 라이센스 동의 하면 되야 하는데...ㅎ 나는 안됐다..! STS4 는 legacy프로젝트를 만들 수가 없는데 그 위에 spring tool 3를 덮어 씌우는게 안되는 듯 하다.. 고로 나는 market place에서 spring tool 4를 삭제하고 다시 3버전을 install했다.
아니면 애초에 STS를 3버전으로 다운로드 해도 되는듯 하다. ]
다시 돌아와서
서버를 세팅해주자 tomcat을 설치해주자 (나는 9버전)
다운받은 파일 실행! 넘어가다 보면 이런 화면이 나온다. Connector Port는 일반적으로 8080세팅 이고
Administrator 는 계정정보인데 지금은 보안상 필요하지 않기 때문에 넘어간다.
다음화면에서 경로만 기억해주고 쭉쭉 넘겨서 마무리한다.
이제 sts로 돌아와서 서버를 세팅하자
이제 정상적으로 spring 환경이라면 legacy project를 생성할 수 있다.
그 다음 pom.xml로 가서 의존성주입을 해주면 되는데 자바버전, 라이브러리 등 어느정도 세팅되어있는 아래 코드를 가져가서 필요한 부분을 수정해보자. (<properties> 하단 전체를 지우고 붙여넣기)
<properties>
<java-version>1.8</java-version>
<org.springframework-version>5.0.7.RELEASE</org.springframework-version>
<org.aspectj-version>1.9.0</org.aspectj-version>
<org.slf4j-version>1.7.25</org.slf4j-version>
</properties>
<!-- 라이브러리 등록 : 기본 다운로드 저장소 : maven.org -->
<!-- 메이븐에 등록된 라이브러리 찾아보기 : search.maven.org -->
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j-version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
<exclusions>
<exclusion>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
</exclusions>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
<!-- @Inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- Servlet -->
<!-- Servlet은 web.xml의 web-app 태그의 속성을 바꿔줘야 한다. 2.5-> 3.0으로 변경해 준다. -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- JSON / XML -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.4</version>
</dependency>
<!-- File Upload -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- DB 관련 라이브러리 -->
<dependency>
<groupId>oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0</version>
<scope>system</scope>
<systemPath>C:\Users\hong\Desktop\jspBoardWorkspace\first\src\main\webapp\WEB-INF\lib/ojdbc8.jar</systemPath>
</dependency>
<!-- HikariCP 라이브러리 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.7.4</version>
</dependency>
<!-- Mybatis : ORM -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.2</version>
</dependency>
<!-- Spring JDBC 관련 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<additionalProjectnatures>
<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
</additionalProjectnatures>
<additionalBuildcommands>
<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
</additionalBuildcommands>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
<compilerArgument>-Xlint:all</compilerArgument>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<configuration>
<mainClass>org.test.int1.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
위와 같이 의존성을 주입해주면
이렇게 오류가 생긴다. 경로상에 library가 없어서 그렇다.
해당 경로에 jar파일을 넣어주면 된다.
( 나는 <systemPath>에 상대경로가 아닌 절대경로를 쓰라는 에러가 나와서 절대 경로로 바꿔주었다.
C:\Users\hong\Desktop\jspBoardWorkspace\first\src\main\webapp\WEB-INF\lib\ojdbc8.jar )