[Spring-boot] Gradle 프로젝트 생성, 서버 DB와 연결

2025. 5. 9. 17:50·Web

 

https://domain.whois.co.kr/

https://hosting.kr/

도메인 구매 사이트에서 도메인 구매 후 프로젝트 생성

디펜던시는 기본 6개 잡고 세팅후 추가하는것이 정석 

넥스트 삐니시 > 깔릴때까지 존버

 

언어셋 UTF-8로 세팅 후 

스프링 프로퍼티스에 추가해두기 

 

자바 컴파일러 서버와 동일하게 세팅 

jre도 설정

 

XML 위에꺼 꼭 체크하기 안하면 xml깨짐

비어있는 src/main 에 webapp 폴더 생성

webapp 폴더 안에 META-INF, WEB-INF 폴더 생성

 

프로젝트 프로퍼티스

다이나믹 웹 모듈 5.0으로 바꾸기 안바꾸면 자카르타 사용 못함 

 

application.properties 세팅

spring.application.name=kr.it.ecms

#Server
#포트설정은 배포시 주석처리후 배포
server.port=9000
server.servlet.encoding.charset=utf-8
server.servlet.encoding.force-response=true
server.servlet.encoding.enabled=true
spring.devtools.restart.enabled=true
server.servlet.jsp.init-parameters.development=true

#File
spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=50MB
spring.servlet.multipart.max-request-size=100MB
#원래 /로 다풀어놓지는않음 view넣을 파일 ex /WEB-INF/ 해두면 여기서만 jsp작동 
spring.mvc.view.prefix=/
spring.mvc.view.suffix=.jsp

 

build.gradle

라이브러리 추가 - MavenRepository, SpringStarter

 

버전빼도되고 안빼도됨

 

https://mvnrepository.com/artifact/jakarta.servlet.jsp.jstl/jakarta.servlet.jsp.jstl-api/3.0.2

https://mvnrepository.com/artifact/org.glassfish.web/jakarta.servlet.jsp.jstl/3.0.1

https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api/4.0.1

https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper/10.1.40

https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload/1.5

https://mvnrepository.com/artifact/commons-net/commons-net/3.11.1

 

https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp/4.12.0

 

https://mvnrepository.com/artifact/xalan/serializer/2.7.3

plugins {
	id 'java'
	id 'war'
	id 'org.springframework.boot' version '3.4.5'
	id 'io.spring.dependency-management' version '1.1.7'
}

group = 'kr.it.ecms'
version = '0.0.1-SNAPSHOT'

java {
	toolchain {
		languageVersion = JavaLanguageVersion.of(17)
	}
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.springframework.boot:spring-boot-starter-web-services'
	implementation 'org.springframework.boot:spring-boot-starter-webflux'
	implementation 'org.springframework.session:spring-session-core'
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	annotationProcessor 'org.projectlombok:lombok'
	providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testImplementation 'io.projectreactor:reactor-test'
	testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
	
	// jstl
	implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.2'
	implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl:3.0.1'
	
	//Httpservlet request, response 쓰고 싶을 떄 javax //요즘은 이거 안쓰고 자카르타 쓰기는함 
	compileOnly 'javax.servlet:javax.servlet-api:4.0.1'
	
	//Dashboard에서 JSP, JSTL 사용하고 싶을 때 (대시보드돌리고 탐캣 버전확인 후 버전 맞춰서 사용해야함!)
	implementation 'org.apache.tomcat.embed:tomcat-embed-jasper:10.1.40'
	
	//fileupload
	implementation 'commons-fileupload:commons-fileupload:1.5'
	
	//ftp 외부에 업로드시 필요
	implementation 'commons-net:commons-net:3.11.1'
	
	//okhttp 웹소켓 소켓통신시 필요
	implementation 'com.squareup.okhttp3:okhttp:4.12.0'
	
	//xalan : xml 도큐멘트 핸들링 (xml로 문서변환)
	implementation 'xalan:serializer:2.7.3'
	
	
}

tasks.named('test') {
	useJUnitPlatform()
}

프로젝트우클릭>그레이들>리프레시

반영하기 

프로젝트우클릭>프로퍼티스>facet>다이나믹웹모듈 5.0


webapp에 jsp 만들어서 테스트

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@taglib prefix="cr" uri="http://java.sun.com/jsp/jstl/core" %>
<%String user="구나영"; %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
	<%=user%>
	<cr:set var="aa" value="테스트"></cr:set>
	${aa }
</body>
</html>

웹브라우저로 접속시 다운안받아지고 잘 보이면 세팅 성공

확인 후 삭제


[타임리프 세팅]

스프링 스타터 > 타임리프 추가 

implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'

직접 복사붙여넣기

 

properties 세팅

#Thymeleaf
spring.thymeleaf.cache=false
spring.thymeleaf.check-template=true
spring.thymeleaf.enabled=true
spring.thymeleaf.prefix=classpath:/static/test
spring.thymeleaf.suffix=.jsp
spring.thymeleaf.mode=html
spring.thymeleaf.view-names=/*

 

 

 

 

resource/static에 test.html 만들어서 테스트하기


[서버2]

루트사용자 

systemctl stop firewalld

systemctl start docker

docker start centos9

systemctl stop mysqld

systemctl stop httpd

실서버 그대로 두고

 

클라우드서버 접속

cms사용자 

su

루트로 접속 

netstat -an

yum search mariadb

cd /etc/yum.repos.d

yum install mariadb-server

자동으로 10.5.27 버전으로 깔림 (대략 5년전 개오래됨)

mariadb -V

깔면서 확인했지만 버전확인가능 

서버말고 클라이언트도 깔아야함 

yum install mariadb-client

없음 없으면 걍 넘어가 

rpm -qa | grep mariadb

systemctl start mariadb

 mysql -u root -p

비번 그냥 엔터

여기서 잠깐!
mysql은 패스워드가 임시 발급됨
vi /var/log/mysql/mysql.log
mariadb는 최초설치시 루트 패스워드 없음 => 엔터로 바로 접속 => 비번 설정 꼭하기 (안하면 디도스 뚜드러맞음)
패스워드 정책 mysql_native_password 확인
리눅스 사용자가 루트일경우 마리아디비 접근시 패스워드 없이 가능 
일반사용자로 리눅스 로그인시 루트로 접속할 경우 패스워드를 무조건 입력해야만 루트로 디비 접근 가능 

mariadb 비밀번호 설정 

use mysql

 

[청기백기]

status로 언어셋 확인 기본 라틴이랑 utf8임 이거 아님

utf8mb4로 다 설정해야함

마리아 디비

set password for 'root'@'localhost'=password('a123456');

flush privileges;

exit

mysqladmin -u root -p reload

그냥엔터

mysql -u root -p

a123456

도 로그인되는데 그냥 엔터도 로그인이 돼버림 => 사고났다

systemctl stop mariadb

systemctl start mariadb

그래도 똑같음

 

제대로 비번바꾸기

 - 지피티방법

use mysql

alter user 'root'@'localhost' identified by 'a123456';

 

 - 쌤방법 

select host,user,password,plugin from user;

플러그인확인

mysqladmin -u root password 

위의 방법과 다르게 서버의 루트와 비번 동기화해서 바꾸는방법임 

서버에 루트로접속시 바로 접속가능, 일반사용자로 로그인해서 디비 연결시 못들어감

mysqladmin -u root -p reload

일반사용자로 접속시 루트의 패스워드를 입력해야 접속 가능 

단점 : 리눅스의 루트 뺏기면 디비도 뺏김

 

디비, 사용자 추가 

create database webcms;

create user 'cms'@'localhost' identified by 'cms1234';

create user 'cms'@'%' identified by 'cms1234';

select user,host from user where user='cms';

사용자 검색

delete from user where user='cms' and host='%';

배포시 %삭제 

desc db;

컬럼개수 확인 23개

insert into db values ('localhost','webcms','cms','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');

insert into db values ('%','webcms','cms','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');

exit

mysqladmin -u root -p reload

mysql -u cms -p

cms1234

접속해서 

show databases;

설정한 디비 잘 보이면 성공

 

exit

클라우드서버의 루트

netstat -an | grep "3306"

 


[DB 세팅]

스프링스타터

다른거 복사해두고 직접 붙여넣기 

implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-jdbc'

implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.4'
runtimeOnly 'com.mysql:mysql-connector-j'

testImplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.4'

붙여넣은후 그레이들 리프레시 

facet 다이나믹웹모듈 5.0으로 변경 

 


[서버 디비 언어셋 변경]

서버2의 클라우드 마리아디비 루트로 접속 

vi /etc/my.cnf

추가하기

systemctl stop mariadb

systemctl start mariadb

디비에서 status로 확인시 언어셋 잘 바뀜

 

create table testmember(
mid varchar(30) not null
)default character set utf8mb4;

select * from testmember;

 

STS에서 데이터 insert로 넣었을때 에러안나고 잘 들어가면 성공

 

키포인트 : 서버 데이터베이스의 언어셋!

코드 맞는데 왜 에러날까? 언어셋때문에~ 

mysql, mariadb에서 언어셋은 status로 확인

저작자표시 비영리 변경금지 (새창열림)
'Web' 카테고리의 다른 글
  • [Spring-boot] 블로그 만들기
  • [Spring] 프로젝트를 하면서
  • [Oracle]
  • [스프링부트] Gradle 프로젝트 생성, 배포
9na0
9na0
응애
  • 9na0
    구나딩
    9na0
  • 전체
    오늘
    어제
    • 분류 전체보기 (211)
      • Web (118)
      • Java (28)
      • 데이터베이스 (14)
      • 세팅 (12)
      • 과제 (3)
      • 쪽지시험 (2)
      • 정보처리기사 (4)
      • 서버 (25)
  • 블로그 메뉴

    • 링크

      • 포폴
      • 구깃
    • 공지사항

    • 인기 글

    • 태그

      notice_writer
      net5~10
      file24
      exam1_1~10
      net3
      io_dto
      macbook pro m4
      java_io1~10
      ab1
      Oracle
      datalist
      spring-boot
      net2
      file25_t
      file25
      re_java10
      re2
      net4
      net1
      noticewriteok
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    9na0
    [Spring-boot] Gradle 프로젝트 생성, 서버 DB와 연결
    상단으로

    티스토리툴바