오늘 드디어 spring을 나갔다. 뭐 특별하게 한 것 없고, 설치, 설정 정도만 했다. 뭐가 있을까..
1) 먼저 기존 프로젝트 파일에서 라이브러리 jar파일을 직접 다운 받아서 폴더안에 넣어줘야 했지만, spring을 사용하면 dependency 태그만 pom.xml에 넣어주면 설정한 경로로 자동으로 다운 받아준다. 라이브러리를 저장한 경로를 설정하기 위해선 먼저 경로를 만들어주고, 경로를 설정해주는 xml파일을 만들어서 지정해주면 된다.
- localRepository에 라이브러리가 저장될 경로를 설정해주고,
- preferences > maven > user settings > user settings에 경로 설정한 xml파일을 지정하면 밑에 설정된 경로가 나타난다.
2) 그리고.. pom.xml에 있는 항목들을 살펴보면 groupId는 프로젝트 파일 생성할 때 패키지 3단계로 지정시 앞에 두단계가 오게 된다. artifactId는 패키지 3단계의 세번째 항목이 오고, name은 프로젝트 이름이다.
3) 그리고 properties에는 변수를 설정할 수 있는데, 설정된 변수를 EL형식으로 사용할 수 있다.
- ${java-version} --> 11
4) 그리고 dependency는 위에서 언급했듯이 필요한 라이브러리를 다운받기 위해 사용한다.
5) 하단의 build는 어떤 명령을 수행할지? 정해두는 곳이다..?
6) 좌측 Package Explorer에서 src/main/java는 기존 java코드를 작성하는 곳이고 src/test/java는 java코드를 미리 테스트할 수 있도록 작성할 수 있는 곳이다. 그리고 src > main > webappp이 기존 WebContent로 views와 resources가 오게 된다.
7) web.xml을 살펴보면 context-param에 스프링 컨테이너에 대한 정의, listener에 스프링 컨테이너 생성, servlet/servlet-mapping에서 어플리케이션 요청 처리를 하게 된다. Spring container는 자바 객체(POJO)들과 dispatcher Servlet을 가지고 있다. dispatcher Servlet이 모든 요청에 대한 경로를 지정해주고 해당 경로에 알맞은 POJO안의 java객체(component)에 포워딩해준다.
8) servlet-context.xml에서 annotation-driven은 @어노테이션을 사용할 수 있게 해주고, context:component-scan은 base-package의 설정된 패키지에서 component(java객체)를 스캔하게 된다.
9) 8번까지의 spring 프로젝트 구성 이해가 필요하고 사용하는 java, tomcat 버전 등에 따라 초기 설정을 변경해주어야 한다. 크게 web.xml에서는 web-app 부분을 version에 따라 다르게 해주어야하는데, 우리 수업 기준으로 tomcat 8.5를 사용하니 3.1버전에 맞게 바꿔줘야한다. (참고: https://tomcat.apache.org/whichversion.html)
10) 그리고 pom.xml에선 사용하는 java-version으로 변경해주고 하단 build에 source, target 변수를 이용해 변경해준다. 그리고 바로 아래 org.springframework-version은 사용할 스프링 프레임워크 버전으로 바꿔주면 되는데 우리는 정부전자프레임워크를 기준으로 4.3.25.로 바꿔주었다.
11) 그리고 dependency에서 Servlet 부분의 servlet-api와 jsp-api를 위 참고사이트의 버전을 확인한 후 버전에 맞게 maven repository에서 dependency를 가지고 와서 변경해주면 된다.