스프링을 공부할 땐, 이클립스에 STS 플러그인을 설치하거나, 이클립스를 품은
STS, 또는 eGov, 또는 intelliJ(무료는 별로,유료가 좋음)등을 다운받아서 개발하게 된당.
STS는 공식적으로 스프링 프레임워크를 유지관리해주는 pivota(지금은 vmware)l사에서
만든 것으로 스프링을 시작할 때, 공짜인데다 나름 가볍고 쓸만하당.
물론 요즘은 jdk버젼과 이클립스 플러그인의 충돌로 예상치 않은 문제가 발생하는 거시
꽤나 맘에 부담을 주어, 플러그인 설치시 미리 미리 백업받아두고 하는 거시 좋당.
스프링 부트를 사용한다면 STS4를 다운 받는 걸 권장하는데, 부트로 시작하면 편하긴
한데(넘 편함), 의도치 않게 놓치는 것들이 있어서, 그냥 스프링으로 기본을 익힌 후
부트 사용하는 것을 개인적으로 좀 더 권장하고프당.
흔하디 흔한 JDK 1.8을 쓰기 위해선 STS3 가 피료하당.
찾기 눈 아플 수 있으닝 그냥 아래 링크를 타고 간당
https://github.com/spring-attic/toolsuite-distribution/wiki/Spring-Tool-Suite-3
누느로 한번 휘리릭 후벼본당
개인적으로 추천하는 건 STS3.9.15 에 Eclipse 4.16 인 아래 링크당(윈도우용),
리눅스, 맥용도 당근 있당. 왜냐면 이클립스 4.16이 jdk1.8을 지원하는 마지막 이클립스당)
그냥 다운 바더서 압축 풀고, 디렉토리 안으로 들어가서 sts-bundle 디렉토리안에 있는
sts-3.9.15.RELEASE 만 잘라서 밖으로 가지고 나온당. 쉬운 이름으로 바꾼당.(난 sts3915)
왜에? 그거만 있으면 된당.(관심없는 것들이 신경 쓰이게 쪼메 서껴이땅)
디렉토리(폴더) 안에 sts.exe를 실행시키면 된당.(안 되면 다시 다운받아 압축풀장!)
만약 처음 실행시키는 거라면 메뉴 window -> Preference 에서 encoding으로 껌쌕한 다음
UTF-8 아닌 건 누네띠는대로 UTF-8로 바꾸어 준당.(안하면 낸중에 피곤할 수 있당!)
우린 스프링을 이용해서 web-application을 맹글거라서, 웹어플리케이션서버(WAS)가
필요하닝 아래 링크에서 tomcat9를 받장(jdk 1.8을 지원하는 마지막 톰캣이당!)
https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.86/bin/apache-tomcat-9.0.86-windows-x64.zip
역시 편한 곳(관련tool을 모아놓은곳)에 풀고, 폴더명이 기니 그냥 tomcat9로 바꾸장!
STS의 Servers 탭의 링크를 클릭하여, 리스트에서 apache-tomcat9을 선택하고,
tomcat9 압축 푼 폴더을 지정해 주면 tomcat9가 추가 된당.
File -> New -> Spring Legacy Project를 선택하공,
Project name을 적어주공, Templates에서 Spring MVC Project를 선택 Next클릭
top-level packag(보통 회사 도메인명 뒤집어서)를 적어주면.(난 com.e7e.basic)
프로젝트가 생성된당. Markers 탭을 보장.(맘에 안드는 메세지들이 있당!)
프로젝트 위에서 마우스 오른쪽 버튼을 누르공, properties -> Project Facets를 선택
java는 1.8로, Dynamic Web Module은 4.0을 오른쪽 runtimes 탭에서
Apache Tomcat v9.0을 선택하고 Apply and Close를 누르면, XML Problem만 남는당.
주의 만약 spring mvc project가 보이지 않는다면 workspace로 지정한 디렉토리의
.metadata\.plugins\org.springsource.ide.eclipse.commons.content.core에 아래
파일을 다운받아서 넣어준당!
(교회 오빠 JHJ쌤의 위대한 도움을 받아서 알게 되었당!~~ )
STS를 종료했다가 다시 실행시켜줘야 반영된당!
※ 개인적인 추측은 defalt template url인 아래 url이
https://dist.springsource.com/release/STS/help/descriptors-3.0.xml
브라우져에 넣어보면 Access Denied 나오는 것이 원인이 아닌 가 싶당!~~ ㅠㅠ
아래 링크를 눌렁 log4j.dtd 파일을 다운받아서, log4j.xml 파일이 있는
/src/main/resources에 복사 붙여넣기 함.
http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd
/src/test/resources에 있는 log4j.xml을 지워버리고, 메뉴 Project -> Clean 클릭
Maven 프로젝트 설정파일 pom.xml에서 다음 부분을 찾아서 버젼만 덮어쓰거나
해당부분을 통째로 덮어씀(maven plugin 업그레이드)
<build>
<plugins>
<plugin>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.10</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>3.11.0</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>3.1.0</version>
<configuration>
<mainClass>org.test.int1.Main</mainClass>
</configuration>
</plugin>
</plugins>
</build>
pom.xml의 아래 내용과 태그가 일치하는 부분을 덮어써버리장!
(spring 버젼을 5로 올리공, servlet, jsp 버젼을 tomcat9에 맞추공, test도 junit5로 올렸당.
그외 aop와 log4j버젼도 올렸당....그라공 필수 jackson도 누느로 휘리릭 하장!)
pom.xml
<properties>
<java-version>1.8</java-version>
<org.springframework-version>5.3.29</org.springframework-version>
<org.aspectj-version>1.9.19</org.aspectj-version>
<org.slf4j-version>2.0.7</org.slf4j-version>
</properties>
<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.15</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>
<!-- @Inject -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.15.2</version>
</dependency>
<!-- Test -->
<!-- junit-jupiter-engine -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
<!-- spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.3.29</version>
<scope>test</scope>
</dependency>
</dependencies>
svn을 사용한다면, 메뉴에성 help -> eclipse market place에서 subclipse로 검색하여
설치한당. 아래 Subversive -SVN Team Provider 4.8 보다 좋은 부분은 connector도 같이
설치 된다는 것이당. 설치 후 window -> preference -> svn 을 선택해 보면
커넥터가 아래 처럼 되어 있는뎅...
요걸로 바꾼당.(왱? 장단점이 다른뎅 ,난 이게 좋당!, 위에 껄로 잘 안 되었던 적이 있고,
순수 java로 맹글어진 게 SVNKI당)
만약 위에 꺼 맘에 안 든다거나 하면 Subversive -SVN Team Provider 4.8을 쓸 수 있는뎅
[위에 꺼 설치 했다면 이건 하지 마삼, 알 수 없는 이유로 위에 싫을 때만 .....]
메뉴에성 help -> eclipse market place에서 svn으로 껌색
(만약 search 탭에서 search 했을 때 에러가 발생한다면, 그냥
popular나, favorite 탭을 클릭해서 보면 Subversive -SVN Team Provider 4.8을
찾을 수 있당. search에 버그가 있는 듯.. ㅠㅠ)
Subversive -SVN Team Provider 4.8의 install 버튼을 누르장. 버젼 호환성 문제롱 설치를
거부 당할 수 있당. 그렇다면
메뉴에서 Window -> Preference -> Install/Update를 클릭
Verify provisioning operation is .. 어쩌구 저쩌구 체크박스를 해제하고성,
다시 eclipse market place로 가서 설치하면 설치가 될 꺼이당.
문제는 예전엔 svn connector도 같이 설치되었는뎅, 이젠 같이 설치가 안되성 따로 설치
해야 하는 번거로움 발생한당. 메뉴에서 Window -> Preference 에서 SVN으로 검색
Connector 탭을 클릭해 보면 Connector가 없당. (한심하당... ㅠㅠㅠ)
메뉴에성 help -> Install New Software를 선택
Work-with에 https://osspit.org/eclipse/subversive-connectors/ URL을 카피 붙여넌당.
한가지 더 주의 할 게 있는뎅, 왼쪽 아래 Contact all update sites... 어쩌구 저쩌구
체크박스가 보일 건뎅, 꼭 해제를 하도록 하장.(왱? 이클립스를 망가뜨릴때가 있당!)
만약 안된다면 귀찮지만 수동 설치를 해야한당.
위 파일 2개를 다운 받은다음 sts3 압축 푼 폴더에 가 보면 plugins 폴더가 있는뎅,
거기엥 붙여넣기 한 후 STS3를 재부팅한당.(쪼메 귀찬아랑!!!~~)
잘 설치가 되었다면, 메뉴 -> Window -> Show view -> Other를 선택 svn으로 검색후
SVN Repositories를 선택하공, 해당 탭에서 리포지토리 URL을 등록해 준당.
아래 MyBatipse 플러그인도 빼먹지 말공, 설치하도록하장(왱? 편하게 해주니깡!)
2022.06.10 - [스프링] - MyBatipse
https://www.youtube.com/watch?v=yTsINmrAK4I
파일 업로드 (0) | 2023.01.02 |
---|---|
Apache POI (0) | 2022.11.16 |
sitemesh 적용 (0) | 2022.10.12 |
아주 주의 (2) | 2022.06.29 |
log4j2 (0) | 2022.06.28 |