카테고리 없음

STS4 다운로드와 Spring 이해

코린이 연대기 2020. 12. 15. 14:54

 

이제 다운로드받은 파일 압축을 풀텐데 간혹 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 > 

1

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를 생성할 수 있다.

 

하고 next

 

 

그럼 이제 이렇게 목록이 나온다 

그 다음 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 )

lib 디랙터리는 없으면 만들어주자