ㅁ 스프링도 프레임워크다. 프레임워크는 세팅이 빡세다.
- 스프링 legacy 프로젝트를 만든다. 이건 자바 11버전에 최적화되어있다.
그런데 현재 설치된 자바가 17버전이라 11버전을 다운받는다.
- 스프링 부트쓸 때는 다시 17버전으로 한다.
ㅁ 스프링 버전이 몇이냐에 따라서 호환되는 자바 버전이 다르다.
현재 전자정부 프레임워크는 스프링 버전이 5인데 그건 자바 11버전과 호환된다.
- 스프링부트하면 스프링버전이 6인데 그건 자바 17버전과 호한된다.
- 그리고 아파치 톰캣 버전이랑도 최적화되어있는 버전이 다 다르다.
ㅁ 구글 드라이브에서 공유받은 설치파일을 다운로드 받는다.
ㅁ 현재 내 pc에 설치된 자바 버전 확인하기
- cmd에서 "java -version"을 입력하면 내 pc에 설치된 자바 버전을 확인할 수 있다.
아마존 코레토의 17버전으로 설치했었다.
- 한 pc에 자바 버전을 여러개 설치해 놓을 수 있다.
ㅁ 아마존 코레토 11버전 설치파일을 실행한다.
- 다 next 눌러서 설치한다. 딱히 체크할 것은 없다.
ㅁ 다시 자바 버전 확인하기
- 11버전이 잡힌다. 17버전이 사라진 것은 아니다.
- 어떤 회사에서 제공하는 jdk냐에 따라서 jdk가 설치되는 폴더는 달라진다.
우리는 오라클에서 제공하는 jdk가 아닌 아마존이 제공하는 오픈jdk를 설치했다.
ㅁ 내pc 우클릭 속성 - 고급시스템 설정 - 환경변수
- 시스템 속성에서 "환경 변수"를 누른다.
- 환경 변수에서 아래 시스템 변수에서 "Path"를 눌러본다.
- 위에 있는게 자바 버전으로 잡힌다. 17버전을 11버전보다 위로 올리면 17버전이 잡힌다.
- 자바 17, 오라클, 자바11 순서로 설치했었다.
- 아마존 코레토로 설치하면 자동으로 path에 추가를 해준다. 오라클 걸로 설치하면 수동으로 추가해야 한다.
- 아마존 코레토가 JAVA_HOME이라는 변수도 자동으로 추가해준다.
이것도 추가해주는게 좋다. 자바로 만들어진 서드파티 앱들이 JAVA_HOME이라는 변수를 찾기 때문이다.
오라클 JDK로 설치하면 직접 설치해야 한다.
ㅁSTS 설치
- 이클립스에서는 스프링 개발을 할 수 없다. 그런 툴이 없다.
- 스프링 개발이 가능한 이클립스를 다시 구축한다.
- 그걸 spring tool suite라 한다. 약자로 STS라고 한다.
- 이클립스 기반이라 익숙하다.
- STS도 버전 3과 버전 4가 있다.
- 스프링 부트할 때는 sts 버전4로 한다. 지금은 3로 한다.
- spring-tool-suite-3.9.17.RELEASE-e4.20.0 파일의 압축을 푼다.
- 경로가 너무 길어서 압축을 풀 때 오류가 날 수 있다.
그런데 저 파일들은 딱히 필요없는 파일들이라 모두 체크하고 건너뛰기 한다.
- sts-bundle이란 폴더가 있어야 하고,
- 그 안에 저 3개 폴더가 있어야 한다.
- 뭐가 빠진거같으면 다시 압축을 풀어야 한다.
- sts-bundle을 복사해서 c 드라이브에 붙여넣기 한다.
실행 파일은 c드라이브에 두는게 좋다.
- sts-bundle을 STS3로 이름을 변경한다.
- legacy로 웹 프로젝트를 다 만들고 스프링 부트 프로젝트로 바꿔볼 것이다.
ㅁ 워크스페이스 생성
- C:\workspaces에 07_spring-workspace라는 폴더를 만든다.
- 이게 스프링 개발이 가능한 이클립스다. 이것도 이클립스라고 보면 된다. 이클립스에 플러그인이 설치된 버전이라고 보면 된다.
- 나뭇잎 모양의 STS 파일을 실행한다.
- sts3도 자바11버전에 최적화되어 있다.
- C:\workspaces\07_spring-workspace를 워크스페이스로 선택하고 Launch한다.
- 웰컴페이지 오류는 상관없다.
- Servers 탭에 서버가 있는데 저걸 쓰진 않는다. 깔끔하게 지울 예정이다.
- 이때까지 dynamic web project를 만들었는데 spring legacy project를 만들 것이다.
스프링 프로젝트, 스프링 mvc 프로젝트, 스프링 레거시 프로젝트라고도 얘기한다. 다 같다.
얘와 대조되는게 스프링 부트 프로젝트다.
- 패키지 익스플로러 빈공간 우클릭 - new - spring legacy project를 누른다.
- 이 창을 띄우면 metadata라는 폴더가 만들어 진다.
- 스프링 MVC 템플릿이 보여지지 않아서 추가한다.
- 원랜 없었는데 방금 저 창을 띄우면 만들어 지는 폴더다.
이 안에 파일 하나를 넣는다.
- org.springsource.ide.eclipse.commons.content.core 폴더에 공유받았던 파일 https-content 파일을 넣는다.
- 넣고 STS를 끄고 재실행해야 한다.
- C:\STS3\sts-3.9.17.RELEASE로 와서 다시 STS를 실행한다.
매번 여기까지 와서 실행하기 번거로우니 시작 화면, 작업 표시줄에 고정해놓는다.
- 아까와 달리 Spring MVC Project가 보여진다.
- 백지 상태의 프로젝트를 만들어서 세팅해도 되는데 너무 오래 걸린다.
- 그런데 이런다고 끝이 아니고, 목록에 보여지긴 하는데 안넘어가는 이슈가 있었다.
- Spring MVC Project를 누르고 Next 누르면 뭘 다운받는다고 뜬다. Yes를 누른다.
- Next를 일단 눌러야 템플릿을 다운받으면서 ~content 폴더가 만들어진다.
- 에러가 뜨면서 프로젝트가 만들어지지 않는다.
- 다른 방법. OK를 누르고 STS도 꺼버린다. 어차피 재실행 해야 해서.
- "templates.mvc-3.2.2안에 넣을파일들"을 압축 푼다.
- 압축을 풀면 3개의 파일이 있다.
- C:\workspaces\07_spring-workspace\.metadata\.sts\content\org.springframework.templates.mvc-3.2.2 폴더에 저 3개의 파일을 붙여넣기 한다.
- 원래 저 파일들이 저기에 다운받아져야 하는데 안받아져서 이렇게 넣는다.
- STS를 재실행 한다.
- 프로젝트 이름으로 "test"를 작성하고, Spring MVC Project를 선택하고 Next를 누른다.
- 오류가 나지 않고 잘 넘어와진다. 패키지로 com.br.demo를 작성하고 Finish한다.
- 프로젝트가 정상적으로 생성되었다.
- 원래는 이렇게 복잡하지 않았는데 갑자기 지원을 끊어버렸다. 최초에 한번만 하면 되는 설정이다.
- 지금 만든 프로젝트는 테스트해본거라 지운다. 프로젝트 우클릭 - delete - Delete project contents on disk를 체크해서 물리적인 폴더도 지운다.
- 서버도 지운다. Servers 탭에 있는 서버 우클릭 - delete하고, 패키지 익스플로러의 Servers 폴더도 완전히 지운다.
ㅁ 워크스페이스 세팅, 서버 세팅
- Spring Explorer는 잘 보진 않는다. 꺼도 되고 패키지 익스플로러 옆에 둬도 된다.
- 오른쪽 상단을 보면 Java EE가 아닌 Spring 환경으로 되어있다. Spring 관련 파일들을 만들 수 있다.
- 왼쪽 하단 Servers 탭 옆의 Boot Dashboard는 나중에 스프링 부트 쓸 때 사용한다. 지금은 끈다.
- Console 탭 옆의 Progress 탭은 진행상황을 볼 수 있는 창이다. 굉장히 중요하다.
프레임워크가 대신해서 해주는 것들이 많은데 그땐 최대한 우리가 안건드는게 좋다.
지금 뭐가 진행중인지 실시간으로 볼 수 있다. 무언가 작업중일 때는 안건드는게 좋다.
- 뷰들이 정리된 모습이다.
- Window - preferences - Server - Runtime Environments
- 아까 삭제했던 서버의 흔적이 남아있다. 안지워도 크게 문제가 되진 않지만 깔끔하게 remove로 지우고 세팅한다.
- 워크스페이스 세팅, 서버세팅을 한다.
- https://moca7.tistory.com/192
- 여기서 뷰와 "New에서 뜨는 목록 설정"은 다르다.
- window - preferences - XML(Wild Web Devloper)에서 Download external resources like referenced DTD, XSD를 체크한다. <- 이것도 없다. XML(Wild Web Developer) 자체가 없다.
- 14:33. 한가지 세팅을 더 한다.
프레임워크와서부터는 xml 파일에 세팅 정보들이 많다.
- 매번 마이바티스 홈페이지 가서 config 파일, mapper 파일에 대한 구문을 와서 복붙하기 번거로우니 애초에 저 구문들이 붙은 채로 xml파일이 생성되게 할 수 있다.
- XML Catalog를 등록한다.
- UserSpecified Entries 선택하고 add.
- Location에 http://mybatis.org/dtd/mybatis-3-config.dtd
- Key에 -//mybatis.org//DTD Config 3.0//EN
- 마이바티스 홈페이지에서 복사한 구문은 위의 스샷처럼 https로 되어있다. s를 빼서 http로 바꾼다.
- 추가된 게 보인다.
- 얘는 configuration 파일 용이다.
- mapper파일 용도 만든다.
- Location에 http://mybatis.org/dtd/mybatis-3-mapper.dtd
- Key에 -//mybatis.org//DTD Mapper 3.0//EN
- 마이바티스 홈페이지에서 복사한 구문은 위의 스샷처럼 https로 되어있다. s를 빼서 http로 바꾼다.
- 둘 다 추가가 완료된 화면.
==============================================================================
ㅁ Servers 탭에 서버 만들기
- 톰캣 9.0을 클릭한다. 근데 Progress에서 무언가 돌고 있다.
- 내가 뭔가 행위를 한 ㅏ할 때마다 무언가 돌고 있을 때가 많다.
저기서 뭔가 진행중일 땐 최대한 뭔가 안건드리는 것이 좋다. 지금은 큰 상관 없을 것같다.
- 서버 네임은 수정해도 됙 ㅗ안해도 된다.
- 만들어진 서버를 더블 클릭한다.
- 이번에는 Serve modules without publishing을 체크 안해본다.
- 포트번호만 8888로 바꾼다. 저장하고 닫느다.
ㅁ
- AspectJ 체크해제
- General의 맨 아래 체크되어있는데 그냥 둔다.
- Java 탭에서 class, interface, package, source folder만 체크한다.
- STS여서 Spring이란 선택지가 생겼다.
아이콘 보면 X인데 xml파일을 의미한다.
- 여기서는 두 개만 체크한다.
- Spring Boot 체크 해제한다.
- 스프링 넘어오면 이제 서블릿 직접 만들 일은 없다. 인코딩 필터도 스프링에선 제공된다.
- XML은 체크되어있지 않은데 XML File 체크한다.
- Maven은 체크해제한다.
- apply and close하고 확인해 본다.
====
ㅁ 추가적으로 Lombok 라이브러리를 추가하고 설치해야 한다.
- 프로젝트들에 빨간 X 표시가 되어있다.
- 집가서 내려받으면 pom.xml에 dependency 태그는 추가되어 있지만 롬복 경로로 직접가서 설치를 해야한다.
- https://moca7.tistory.com/274
- 그런데 롬복 설치하고 sts 다시켜도 프로젝트들에 빨간 X 표시가 되어 있다.
project - clean을 하면 사라진다.
ㅁ 서버 start하고 다른 페이지를 눌러보는데 log4j2 라이브러리가 없다고 오류가 뜸.
- 현재 src/main.resources에 logback.xml은 있는데 log4jdb.log4j2.properties는 없다. 만든다.
- https://moca7.tistory.com/288
'Spring' 카테고리의 다른 글
[Spring] MVC (1) (0) | 2024.10.16 |
---|---|
[Spring] DI(의존성 주입) (2) | 2024.10.15 |
[Spring] IOC(제어의 역전) (0) | 2024.10.14 |
[Spring] 첫번째 프로젝트 생성, pom.xml (2) | 2024.10.14 |
[Spring] 스프링 기초 (0) | 2024.10.14 |