[스프링부트] 개발환경 세팅하기 (STS3, JAVA 8, ORACLE 21, SPRING 2.7.5)

    장장 6시간이 걸린... 스프링 부트 프로젝트 의존성 설정... 드디어 db 까지 연결해서 정보띄웠다... 

    남이 가르쳐주는거 아무 생각 없이 따라했을때는 2시간이면 했는데 이건 뭐 버전 하나씩 맞춰보고 jar 파일 어떤거에서 오류났는지 알려주지도 않아서 의심되는거 하나씩 넣었다 뺐다.. 

    이전 스프링 프로젝트에선 maven 썼어서 gradle은 처음 써보는데 하루만에 이렇게 익숙해질 수 있나 싶다!

    됐을때 소리지를뻔했삼.

    아무튼 잘 기록해두자...


    jdk : 1.8

    spring 2.7.5

    oracle 21.0.0.0 (ojdbc -8)

    tomcat - 9.0.84

    sts - 3


    plugins {
        id 'org.springframework.boot' version '2.7.5'
        id 'io.spring.dependency-management' version '1.1.4'
        id 'java'
    }
    
    group = 'com.example'
    version = '1.0-SNAPSHOT'
    
    sourceCompatibility = '1.8'
    
    repositories {
        mavenCentral()
    }

    여기까지는 기본적으로 적용해 주는 거. 

    스프링 버전은 내가 의도적으로 내렸다. 

    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-web'
        implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2'
        implementation 'org.projectlombok:lombok:1.18.32'
        implementation group: 'com.oracle.database.jdbc', name: 'ojdbc8'
        implementation 'javax.servlet:jstl:1.2'
    	implementation "org.apache.tomcat.embed:tomcat-embed-jasper:9.0.84"
    	implementation 'org.springframework.boot:spring-boot-starter-log4j2'
    	developmentOnly 'org.springframework.boot:spring-boot-devtools'
    }
    configurations {
        all {
            exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
        }
    }
    tasks.named('test') {
        useJUnitPlatform()
    }

    이제 의존성 주입이다. (들여쓰기는 긁어오면서 틀어진 듯 하다)

    롬복은 하위 호환이 된다고 해서 최신 버전으로 받았고, oracle 도 21 버전으로 사용하고 있는데 21버전이라고 명시하니까 계속 오류가 나서 명시한 버전을 지웠다. (이런 부분은 저번에 spring 프로젝트보다 확실히 편했다... java mail 추가하다가 버전 안맞아서 하루 보냈던 경험) 

    https://the-dev.tistory.com/27

     

    [Lombok] 롬복 설치 및 STS(eclipse) 연동하기

    안녕하세요. 개발개입니다. 이번 글에서는 Lombok(롬복)을 설치하고 STS(eclipse)에 연동하는 방법을 알아보겠습니다. Lombok은 공식사이트, Maven, gradle 등 다양한 경로를 통해 다운받을 수 있고, 본 글

    the-dev.tistory.com

    jsp랑 jstl로 사용해야 하니까 javax.servlet:jstl 이랑 추가하고 log4j2 는 원래 있던 logback 대신 사용하려고 추가했다. 마지막에 developmentOnly - devtools는 매번 clean이나 새고 하기 귀찮아서 추가함!

    ( ** 참고 : 오라클 버전 확인 방법 => SELECT * FROM v$version; )


    spring.application.name=testProject2
    
    debug=false
    # server
    server.port=8080
    
    # view
    spring.mvc.view.prefix=/WEB-INF/views/
    spring.mvc.view.suffix=.jsp
    
    # encoding
    server.servlet.encoding.charset=UTF-8
    server.servlet.encoding.force=true
    server.servlet.encoding.enabled=true
    
    # resources
    spring.mvc.static-path-pattern=/resources/**
    
    # jdbc
    spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
    spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe
    spring.datasource.username=이름
    spring.datasource.password=비밀번호
    
    #
    mybatis.configuration.map-underscore-to-camel-case=true
    
    # xml location
    mybatis.type-aliases-package=com.sist.web.model
    
    # Mybatis location
    mybatis.mapper-locations= classpath:com/sist/web/mapper/**/*.xml

    이건 application.property 

    한번만 잘 설정해두면 여러 번 귀찮을 일이 없다. 


    package com.example.demo;
    
    import org.mybatis.spring.annotation.MapperScan;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.ComponentScan;
    
    import lombok.extern.log4j.Log4j2;
    
    @Log4j2
    @SpringBootApplication
    @MapperScan("com.sist.web.mapper")
    @ComponentScan(basePackages = {"com.example.demo", "com.sist.web"})
    public class TestProject2Application {
    
    	public static void main(String[] args) {
    		SpringApplication.run(TestProject2Application.class, args);
    		
    		log.debug("mainStart");
    	}
    }

     이거 메인 경로인데 저 스프링부트 어노테이션을 메인 경로로 찾는 것 같다. 

    다른 파일들이랑 패키지가 다르면 찾지 않으므로 경로 위쪽에 만들거나, 혹은 나처럼 MapperScan을 넣으면 해당 경로의 패키지도 스캔해서 톰캣 올라갈 때 오류가 생기지 않는다. 

    댓글