본문 바로가기
Spring

Spring #9 : 메이븐과 스프링 STS (230125)

by haheehee 2023. 1. 25.

maven 메이븐 설치

 

메이븐 설치 후

압축풀고 경로복사

 

시스템속성에서 환경변수 클릭

새로만들기

변수 이름을 MAVEN_HOME으로 설정하고 

복사한 경로 값을 변수 값에 붙여넣기

그리고 시스템변수의 path 클릭

새로 만들기 - %MAVEN_HOME%\bin

 

jdk15버전 다시 설치

 

cmd창에서 mvn 입력 후 다음 결과가 나오면, 정상적으로 설치된 것이다.

 

jdk15랑 메이븐 설치 후

환경변수에서 시스템변수만 path 설정.

jdk 15 ... \bn 추가

cmd창에서 mvn

이클립스 설치하면서 default버전을 15로 바꿔주기 (기존에는 17이다)


STS 설치

 

sts 검색 후, 

install 클릭

required 만 체크 (나머지는 선택 해제)

accept하고 finish.

 


++ STS(Spring Tool Suite) ++

- 이클립스 기반으로 만들어진 스프링 기반 어필리케이션 개발용 도구

 

++ 메이븐(Maven) ++

- 프로젝트 구조와 내용을 기술하는 선언적 접근 방식의 오픈 소스 빌드 툴

- 프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리

- 프로젝트 전반의 리소스 관리와 설정 파일 그리고 관련 표준디렉터리 구조를 처음부터 일관된 형태로 구성해 관리

 

메이븐 프로젝트 구성요소

구성요소 설명
pom.xml 프로젝트 정보가 표시, 스프링에서 사용되는 여러 가지 라이브러리를 설정해 다운로드
src/main/java 자바 소스 파일이 위치
src/main/resources 프로퍼티 파일, xml파일 등 리소스 파일이 위치
src/main/webapp WEB-INF 등 웹 어플리케이션 리소스가 위치
src/test/java JUnit 등 테스트 파일이 위치
src/test/resources 테스트 시 필요한 resource 파일이 위치

 

pom.xml의 프로젝트 정보 설정 태그 구성 요소

속성  설명
groupid 프로젝트 그룹 id. 일반적으로 도메인 이름을 사용해 설정
artifactId 프로젝트 아티팩트 id를 설정. 보통 패키지 이름으로 설정
version 프로젝트의 버전을 설정
packaging 어플리케이션 배포 시 패키징 타입을 설정. war파일로 패키징된다.

 

pom.xml의 dependencies 정보 설정 태그 구성 요소

속성 설명
dependency 해당 프로젝트에서 의존하는 다른 라이브러리 정보 기술
groupId 의존하는 프로젝트의 그룹 id
artifactId 의존하는 프로젝트의 artifact id
version 의존하는 프로젝트 버전 정보

 


스프링 선택

 

File-new-

Spring Legacy Project

Template을 Spring MVC Project로 선택 후,

download proceed.

 

패키지는 꼭 세 단계로 설정해주어야 한다.

설정된 프로젝트

 

프로젝트를 실행할 때에는 꼭 pom.xml에 들렸다 가야한다.

dependencies로 되어 있는 태그들

이렇게 자동으로 설정되어 있다. 

 

db는 mysql만 지원된다.

maria와 oracle은 따로 넣어주어야 한다.

 

java-version을 꼭 1.8로 바꾸어주어야 한다.


첫번쨰

왼쪽 JDBC Drivers클릭, 

MariaDB JavaClient클릭

첫번쨰 3.1.1클릭

Maven에 해당하는 코드 복사하고

pom.xml에 붙여넣기

확인할 수 있음!


메이븐을 클린하고 다시 인스톨하는 방법.

Force꼭 체크해야한다.

가끔씩 해주어야 한다.

(논리적 방법)


maven build도구 사용하려면

로컬디스크 C에 - 사용자 - Administrator - .m2 - repository

에서 확인.

 

문제 발생시 

과감하게 .m2의 repository 파일을 삭제한다.

해당 이클립스 프로젝트 - 오른쪽마우스 - maven update프로젝트. -> 다시 repository가 생김

(물리적 방법)


HomeController.java가 자동생성

디스패쳐가 실행시켜준다.

 

톰캣 서버로 실행시켜주면, 연동이 되는 것을 확인할 수 있따.

 

com.spring.ex01

이곳이 root

root로 쏘면, HomeController.java가 실행됨.


객체 생성 어노테이션

++ 스프링 애너테이션 ++

- 기존에 XML에서 빈 설정을 애너테이션을 이용해 자바 코드에서 설정하는 방법

- 기능이 복잡해짐에 따라 XML에서 설정하는 것보다 유지보수에 유리

 

어노테이션 기능
DefaultAnnotationHandlerMapping  클래스 레벨에서 @RequestMapping을 처리
AnnotationMethodHandlerAdapter  메서드 레벨에서 @RequestMapping을 처리

 

<context:component-scan base-package="패키지이름" />

이곳부터 스캔!!

com.spring.ex01을 넣으면 이것이 root가 되는것!

- 패키지이름을 지정하면 애플리케이션 실행 시 해당 패키지에서 애너테이션으로 지정된 클래스를 빈으로 만들어줌

- xml파일에 넣기

- <context:component-scan base-package="com.spring.ex01" /> : com.spring: 그룹id, ex01: artifact id

애너테이션 
@Controller
@Service
@Repository

model : Repository (Service)

Controller : Controller

View : 없음 (View는 프론트엔드이니까)

 

 

pom.xml 라이브러리부분

web.xml 전반적인 web project에 관계된 것

정말 흐름을 통제하는 것은 controller가 아닌 사실상 dispatcher servlet인 것!

 

Model객체 저장 : .addAttribute

Model and View 저장 : .addObject


 

 

WEB-INF - config - jdbc - jdbc.properties

 

@Autowired : 의존성주입

 

 

 

 

 

 

댓글