읽은 책 정리/코드로 배우는 스프링 웹 프로젝트

[Spring] 스프링 개발을 위한 준비

포포015 2020. 12. 12. 21:54

- JDK 1.8 버전설치

- STS 설치 및 프로젝트 생성(이클립스로 스프링 플러그인 설치로 사용가능)

- Tomcat 설치 및 연동(8.x~9.0)

- 오라클 DB, SQL Developer 설치 및 설정

- 스프링 프로젝트 생성 및 라이브러리 추가

- Mybatis 설정 / 스프링  MVC 개발 설정

 

기본적인 IDE 설치나 환경변수 설정 / UTF-8 설정등 많은 블로그가 많으니 다른 블로그를 참조.

 

* 스프링 레거시 프로젝트 생성 

 -Spring Legacy Project - Spring MVC Project - 패키지명은 'com.popo.project' 같은 형식으로 지정

 프로젝트를 최초로 생성하면 필요한 코드와 라이브러리를 다운로드함. 다운로드 하는 라이브러리들은 

사용자 폴대내 '.m2' 라는 이름의 폴더를 이용함(온전히 생성되지않는경우 '.m2' 밑에 'repository'폴더 내용물 삭제.

(이클립스 재시작시 자동으로 프로젝트 점검하며 다시 다운로드 함)

 

* 프로젝트 구조

 src/main/java - 작성되는 코드의 경로

 src/main/resources - 실행할때 참고하는 기본경로(주로 설정 파일을 넣음)

 src/test/java - 테스트 코드를 넣는경로

 src/test/resources - 테스트 관련 설정 파일 보관 경로

- servlet-context-xml - 웹과 관련된 스프링 설정파일

- root-context.xml - 스프링 설정 파일

 - views -템플릿 프로젝트의 jsp 파일 경로

- web.xml -Tomcat의 web.xml 파일

- pom.xml - Maven이 사용하는 pom.xml

 

pom.xml에서 스프링 프레임 워크는 3.1.1로 생성되므로 5.0.7버전으로 수정, 자바버전 1.6 > 1.8로 수정후 maven>update project 실행 (maven-comiler-plugin 버전도 1.6>1.8로 변경)

 -프로젝트 실행시 생기는 문제를 보려면 'Problems'화면을 통해서 어떤문제들이 발생하는지 확인

 

Lombok 라이브러리 설치

lombok 라이브러리를 이용하면 java개발시 자주사용하는 getter/setter, toString(),생성자등을 자동생성

lombok은 다른 jar파일과달리 프로젝트의 코드에서만 사용하는게 아니라 에디터 내에서

사용되어야하기때문에 별도설치

 

XML 대신 Java Configuration을 이용하는경우

- web.xml 파일삭제 및 스프링 관련 파일 삭제(web.xml, servlet-context.xml, root-context.xml)spring 폴더자체

- pom.xml 수정 및 스프링 버전 변경(maven-comiler-plugin 버전도 1.6>1.8로 변경)

- java 설정 관련 패키지 생성

web.xml을 삭제하면 pom.xml에서 에러발생하는데 과거의 웹프로젝트들이 기본적으로 

web.xml을 사용하도록 설정했기때문에 pom.xml의 하단부에 설정 maven-war-plugin 추가

1
2
3
4
5
6
7
8
9
10
<!-- war plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>3.2.1</version>
                <configuration>
                    <warSourceDirectory>src/main/webapp</warSourceDirectory> <!-- war파일 디렉토리 -->
                    <failOnMissingWebXml>false</failOnMissingWebXml> <!-- web.xml이 없을 때 에러를 낼건지 안낼건지 -->
                </configuration>
            </plugin>
cs

 

@Configuration

java 설정을 이용하는경우 xml 대신 설정파일을 직접 작성할 필요가 있음. 

스프링의 @Configuration 이라는 어노테이션 사용 (클래스생성후 어노테이션 적용하기.)

 

web.xml을 대신하는 클래스 작성하기

클래스 생성후 AbstractAnno-tationConfigDispatcherServletInitializer 라는 추상클래스를 상속받아 작성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package org.zerock.config;
 
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
 
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer{
 
    @Override
    protected Class<?>[] getRootConfigClasses() {
        // TODO Auto-generated method stub
        return null;
    }
 
    @Override
    protected Class<?>[] getServletConfigClasses() {
        // TODO Auto-generated method stub
        return null;
    }
 
    @Override
    protected String[] getServletMappings() {
        // TODO Auto-generated method stub
        return null;
    }
 
}
 
cs