[Spring] : jdk 16이하 ① Maven Project => xml 기반의 Spring을 사용하는 프로젝트(서버 - Tomcat (8.5)기반 -> Linux 기반) : 단독서버
② Spring legacy Project => properties 기반으로 Spring을 사용하는 프로젝트 (서버 - VM ware 기반) : VM ware (Linux : Ubuntu) => Docker : 클라우드 서버 이용
∴ Maven 쓰면 클라우드 서버 미사용, vmware 쓰면 클라우드서버 쓴다고 보면 됨
[Spring Boot 기반] : jdk 17이상 ① Spring starter Project => Spring(v3.0이하 JDK-16 이하), Spring-Boot(v3.0이상 - JDK-17부터) => VM ware (Linux : Ubuntu)
∴ Spring Boot 사용시 클라우드 서버 사용한다고 보면 됨 (boot는 vmware 기반 => vmware 는 클라우드서버 쓰니까)
→ 미리 라이브러리 뭐 쓸지 정해서 세팅해줘야함
kotlin - 어플 groovy - 윈도우 어플 packaging -> 배포파일 형태
● Spring 세팅법 요약 정리
1. Window → Preference → encode → UTF- 8 로 설정 2. Install/update => checbox 해제 3. Run/Debug → Console => 1000000으로 설정 4. Project 를 생성하는 형태 → Maven Project생성 - Create a simple project 체크 하며, use default 를 체크 - Group Id, Artifact Id 동일한 이름으로 생성 , Packingingwar로 변경 5. Project 우클릭 -> Properties 로 이동 - Java Build Path => JRE 11, Server(Apache tomcat 8.5x) 를 라이브러리에 추가 - 주의사항) HttpRequest 사용시 빨간색 밑줄 다운받은 서버 삭제 후 새로 다운로드하여 라이브러리에 추가 - Java Compiler 에서 java-11 버전으로 변경 - Project Facets : Java 버전 11로 변경, Dynamic web Module 3.1로 변경 - Web Project Settings => context 를 ' / ' 로 변경 6. pom.xml 에 필요한 라이브러리 모두 추가 7. web.xml 을 생성 및 해당 web.xml 을 수정함 (Dispatcher 및 언어셋 수정 및 입력) 8. /WEB-INF/webpage.xml을 생성 (단, spring bean configuration File로 XML을 생성) - bean, context, mvc 체크 후 최신 버전 형태로 생성을 해야함 9. Server restart 진행 후 Controller를 생성 (일반 class로 생성) 10. @Controller, @RequestMapping("/생성할do.do") 이용하여 웹페이지가 출력되는지 확인 11. lombok 사이트 및 pom.xml 해당 라이브러리 추가 및 설치 12. STS3를 재실행 후 class를 생성하여 @Setter @Getter을 이용하여 메소드가 자동 생성이 되는지 확인
● Spring 세팅 상세 ( new project 생성 )
① default 하게 세팅
② - groupid :ex) kr.co.choongang - artifact id : jar 로 배포시 사용 ex) kr.co.choongang -> 주로 도메인을 따서 만듬 - Parent Project : 관리자 페이지 있을 때 사용
maven project 생성
③ 모든 spring 은 pom.xml 에 오타나거나 pom.xml 이 없으면 작동안됨
● properties 설정
① java build path설정
- 아래 이미지 처럼 jdk 버전 잡아주기 - server runtime 도 apache로 잡기
② java compiler 설정
- jdk 버전 맞춰주기
③ Project Facets 설정
- java 8 이상이면 Dynamic Web Module은 3.1 이상 사용 - runtime 도 apache로 잡음
④ web project settings
- 실행 시킬 때 경로에 /webspring/ 한번 더 쓰고 들어가야하므로 ' / ' 로 바꿈
● pom.xml 설정
- maven repository 에서 필요한 라이브러리 다운받아 pom.xml로 로드 - 모두 로드 후 적용 후 restart 해줘야함(pom.xml에서는 restart 대신 프로젝트 우클릭 후 maven 의 update project 클릭) - dependencies 태그 : spring에 사용되는 모든 라이브러리를 관리하는 태그
① maven-war-plugin 라이브러리 로드
- 배포 파일에 맞춰서 해당 압축파일을 생성하는 라이브러리 (얘만 bild 태그 안의 plugin 태그 안에 생성 나머지는 dependencies에 생성) - 아래 빨간 박스 안의 text 복사
② pom.xml 수정
- 빨간 박스 안 태그 생성 후 복사한 텍스트 붙여넣기
③ tomcat catalina 다운
- 사용중인 tomcat 버전에 맞춰서 들어간 후 아래의 텍스트 복사 - dependencies 태그 안에 붙여넣기
④ web MVC 로드
- spring 은 무조건 mvc 형태로 제작하기 때문에 필요함 - 텍스트 긁어와서 dependencies 태그 안에 복붙
⑤ Mysql 연결 라이브러리 (DB)
- 텍스트 긁어와서 dependencies 태그 안에 복붙
⑥ spring + Mysql 연결 라이브러리 (DB)
- 텍스트 긁어와서 dependencies 태그 안에 복붙
⑦ JSTL (JSP UPDATE 버전) 라이브러리 로드
- JSTL 검색하면 동일한 jstl 2개 뜨는데, 그 중 에러 안뜨는 걸로 로드 - 텍스트 긁어와서 dependencies 태그 안에 복붙
⑧ mail을 사용하는 라이브러리
- jdk 8이상일 경우 오류 발생하므로 activation 도 로드해줌 - 텍스트 긁어와서 dependencies 태그 안에 복붙
⑨ Lombok 라이브러리 설치
- Getter, Setter 를 @을 이용하여 보다 쉽게 메소드를 생성하는 API - pom.xml 에도 추가해주고 , lombok 사이트 접속해서 다운로드 받은 후 cmd를 이용하여 설치 후 STS IDE를 재 실행해줘야함
ⓐ maven 에서 설치 - POM.XML 에 추가 pom.xml 에 추가
ⓑ google 에 lombok 검색 후 설치 - 설치 후 d 드라이브로 이동
lombok 사이트에서 다운로드
ⓒ cmd 에서 실행 이미지와 같이 cmd에서 실행
ⓓ specify location 클릭 후 select - installer 뜨면 이미지와 같이 sts 선택
ⓔ install 후 빠져나가기
ⓕ sts 재실행
ⓖ getter, setter 가 자동으로 생성 되는지 확인
⑩ 로드 한 라이브러리 적용하기
- 프로젝트 우클릭 후 maven 의 update project 클릭 - Force update 체크 후 적용 해줌
⑪ 잘 로드 되었는지 확인
- java class파일 아무렇게나 생성 후 아래의 노란색 코드 작성 시 에러 없다면 문제없음
● web.xml 설정
① 첫 줄 http 를 https 로 변경 ② 코드 작성
- dispatcher 사용이유 : web @(Controller) 을 사용하기 위한 xml 로드 파일 구현 -> servlet 일 경우 do 를 생성하기 위해서 지속적으로 태그를 사용하는 형태였으나 Spring 으로 변화하면 bean에서 관리하도록 변환됨 - load-on-startup : param-value 에 사용되는 xml 파일을 첫 번째로 읽어서 사용 - servlet-mapping 부분 : 보안 맵핑을 사용(view 출력형태) url-pattern: ' / ' (webapp에서 jsp를 실행가능) or ' /* '(webapp에서 jsp실행불가능 - do 를 거쳐야 접근가능)
③ 언어셋 세팅 ④ 서버 가동 후 문제 없다면 ok
● spring bean file 생성
spring 은 기본으로 mvc형태의 web 프레임 워크이므로 beans, context, mvc 를 사용 - beans : 의존성 여부를 체크하는 소스코드 - context(자바 class를 의미), mvc(jsp로 출력하는 형태)
① web.xml 우클릭 후 아래와같이 other 클릭
② spring bean configuration file 클릭
- 클릭 후 file name을 webpage.xml 로 작성 후 next 클릭
③ next 후 아래와 같이 뜬다면 제대로 로드된것, ④ 필요한 것 최신 버전으로 설정 ⑤ finish 클릭 하면 webpage.xml 생성됨
- 생성 후 web.xml 의 param-value 값을 수정 - controller가 있는 xml파트가 아래의 박스임
- 수정 후 add & remove 에서 서버 추가 해주고 서버 restart
● webpage.xml 파일 수정 -> controller xml 파트
① @를 일반 class 파일에 사용할 수 있도록 하기 위해 코드 변경
② 코드 추가 작성 - webpage.xml 속성 추가
<!-- @를 일반 class 파일에 사용할 수 있도록 하겠다는 것 -->
<annotation-driven></annotation-driven>
<!-- 모든 파일을 사용할 수 있도록 적용.
단 , resource에 특정파일을 적용 시 해당 파일 속성만 적용되도록 함. -->
<resources location="/" mapping="/**"></resources>
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- prefix : view 페이지를 보여줄 경로, suffix : view 페이지 파일 속성명 -->
<beans:property name="prefix" value="/"></beans:property>
<beans:property name="suffix" value=".jsp"></beans:property>
</beans:bean>
<!-- class를 로드하는 부분(controller) -->
<beans:bean class="webspring.mainpage"></beans:bean>
</beans:beans>