본문 바로가기

JAVA/Spring

[Spring] (이클립스/gradle) 게시판 만들기 (1) - 기본 세팅

스프링 xml의 짜증나는 점, 바로 오타가 나도 잡기가 힘들다는 것이다. 인텔리제이는 잡아주나ㅡㅡ;? 오타로 개삽질 두시간은 한듯. 오타가 있어도 빨간줄이 없으니 찾아내기 상당히 힘들다. 가능하면 xml 작성할 때는 자동완성을 쓰던가, 남이 써둔 코드를 그대로 복붙하는것이 좋다.

 


✅ 프로젝트 생성 및 세팅

당연히 들어가기에 앞서 이클립스에 스프링 3.0 및 그레이들 플러그인이 설치되어 있어야 한다. (설치방법은 본인 블로그에서도 찾을 수 있다.) 

 

웹에서 게시판을 구현하는 것이 목적이기 때문에 그레이들로 생성한 프로젝트 속성에서 (프로젝트에 대고 오른쪽 마우스 > 프로퍼티스) 웹 다이나믹 프로젝트 페싯 (대충 유형이라는 뜻)을 추가해준다. 체크 후 Apply and Close

  

막 프로젝트를 생성하고 웹 경로에 인덱스 파일을 생성하면 경우에 따라 오류가 있을 수 있다.

  

 

javax.servlet import 오류인데 이 경우 두가지를 다시 설정해야한다.

1. 아까 속성 > 페싯으로 들어가 자바 오른쪽 창 런타임에 톰캣 체크가 안돼있다면 체크한다.

2. 프로젝트 빌드패스 > 클래스 패스 > Add Library > Server Runtime 추가

 

오류가 사라졌는지 확인해보자.

 

 


  

✅ 그레이들 디펜던시 / Junit 설정

plugins {
    // Apply the java-library plugin to add support for Java Library
    id 'java-library'
}

repositories {
    // Use jcenter for resolving dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}

dependencies {
	compileOnly('javax.servlet:javax.servlet-api:4.0.1');

    api 'org.apache.commons:commons-math3:3.6.1'

    implementation 'com.google.guava:guava:28.2-jre'

    implementation 'junit:junit:4.12'
    
    implementation group : 'org.springframework', name : 'spring-core', version : '5.3.19'
    implementation group : 'org.springframework', name : 'spring-context', version : '5.3.19'
    implementation group : 'org.springframework', name : 'spring-test', version : '5.3.19'
    implementation group : 'org.springframework', name : 'spring-webmvc', version : '5.3.19'
    implementation group : 'org.springframework', name : 'spring-jdbc', version : '5.3.19'
    implementation group : 'org.springframework', name : 'spring-tx', version : '5.3.19'
    
    compileOnly 'org.projectlombok:lombok:1.18.24'
    annotationProcessor 'org.projectlombok:lombok:1.18.24'
    testCompileOnly 'org.projectlombok:lombok:1.18.24'
    testAnnotationProcessor 'org.projectlombok:lombok:1.18.24'

    implementation group : 'org.apache.loggin.log4j', name : 'log4j-core', version : '2.17.2'
    implementation group : 'org.apache.loggin.log4j', name : 'log4j-api', version : '2.17.2'
    implementation group : 'org.apache.loggin.log4j', name : 'log4j-slf4j-impl', version : '2.17.2'
    
    implementation group : 'jstl', name : 'jstl', version : '1.2'
    
    implementation 'org.mariadb.jdbc:mariadb-java-client:3.0.4'
    implementation group : 'com.zaxxer', name : 'HikariCP', version : '5.0.1'
    
    testImplementation group: 'org.slf4j', name: 'slf4j-simple', version: '2.0.0'
    implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.0'
    
    implementation 'org.mybatis:mybatis:3.5.9'
    implementation 'org.mybatis:mybatis-spring:2.0.7'
    
    implementation group: 'org.modelmapper', name: 'modelmapper', version: '3.0.0'
    implementation group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.2.1.Final'
}

 

내 그레이들 설정 문제인지 이상하게 Junit이 제대로 임포트가 안된다. 때문에 따로 Junit을 불러온다.

 

 


 

✅ 패키지 및 파일 구성

 

src/main/java src/main/webapp
📁 sample
 📄 SampleDAO.java
 📄 SampleService.java
 📄 SampleTest.java
📁 webapp
  📁 WEB-INF
    📄  root-context.xml
  📄 index.jsp

 

막 세팅을 마쳤으면 간단한 테스트 파일을 만들어본다. 자바쪽엔 아무것도 안들어있는 SampleDAO, SampleService 그리고 이를 테스트할 SampleTest클래스를 만든다. 코드는 아래와 같이 작성한다.

 

 

@ContextConfiguraion은 스프링 지시서를 불러오는 어노테이션이다. 경로에 맞게 스프링 지시서파일을 생성한다. 이클립스에선 이 파일을 생성하는 순간 프로젝트가 스프링 프로젝트로 변경되기때문에 그냥 xml파일을 복붙하지 말고 해당 경로에가서 스프링 지시서 파일을 직접 생성한다.

막 파일을 생성했을 땐 아래와 비슷한 상태일 것이다. <beans> 아래로 <bean> 클래스를 작성한다. 아까 생성한 샘플 클래스파일을 불러오는 내용이다.

728x90