Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
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
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

뇌약간고침

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

Study/Spring

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

minulbora 2024. 3. 29. 12:13

장장 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을 넣으면 해당 경로의 패키지도 스캔해서 톰캣 올라갈 때 오류가 생기지 않는다.