호스팅을 하기위해 오라클 → mariaDB로 sql문을 다시 변경해줘야 한다.
※ 이전에 호스팅해놓은 파일은 반드시 백업해둘 것!
https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
● Spring Boot Project기반
1. 카페24 MySQL 테이블 생성
CREATE TABLE mediagroup(
mediagroupno int NOT NULL PRIMARY KEY,
title varchar(100) NOT NULL
);
CREATE TABLE media(
mediano int NOT NULL PRIMARY KEY,
title varchar(300) NOT NULL,
rdate datetime NOT NULL,
poster varchar(50) DEFAULT 'poster.jpg' NOT NULL,
filename varchar(100) NOT NULL,
filesize bigint DEFAULT 0 NOT NULL,
mview char(1) DEFAULT 'Y' NOT NULL,
mediagroupno int NULL
);
2. application.properties
------------------------------------------------- application.properties
#주석처리
#server.port=9095
#cafe24서버 MariaDB연결
spring.datasource.driverClassName=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/DB명
spring.datasource.username=root
spring.datasource.password=1234
3. DAO 클래스 수정
------------------------------------------------- MediagroupDAO.java
sql.append(" INSERT INTO mediagroup(mediagroupno, title)");
sql.append(" VALUES((select ifnull(max(mediagroupno),0)+1 from mediagroup as TB), ?)");
------------------------------------------------- MediaDAO.java
sql.append(" INSERT INTO media(mediano,");
sql.append(" title, rdate, poster, filename, filesize, mview, mediagroupno)");
sql.append(" VALUES((select ifnull(max(mediano),0)+1 from media as TB),");
sql.append(" ?, now(), ?, ?, ?, 'Y', ?)");
4. UploadSaveManager 수정
------------------------------------------------- UploadSaveManager.java
public static String saveFileSpring30(MultipartFile multipartFile, String basePath) {
.....
//String serverFullPath = basePath + "\\" + fileName;
//cafe24서버
String serverFullPath = basePath + "/" + fileName;
System.out.println("fileName: " + fileName);
System.out.println("serverFullPath: " + serverFullPath);
.....
}//saveFileSpring30() end
5. ServletInitializer 클래스
※ 프로젝트 최초 생성시 war로 하게 되면 자동 추가됨
------------------------------------------------- ServletInitializer.java
package kr.co.mymelon;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Spring07MymelonApplication.class);
}//
}//class end
/*
스프링부트 war 프로젝트 생성시 SpringBootServletInitializer를 상속받는 ServletInitializer 클래스 파일이 생성된다.
해당 파일의 용도는 무엇일까?
스프링 부트 웹 애플리케이션을 배포할 때 jar를 이용하기도 하지만, 전통적인 방식인 war 파일로 배포하는 경우가 있다.
이때 SpringBootServletInitializer를 상속받아 배포하게 된다.
Why?
스프링 웹 애플리케이션이 Tomcat에서 동작되기 위해서는 web.xml에 ApplicationContext 등록해줘야한다.
Apache Tomcat이 구동될때 web.xml을 읽어 웹 애플리케이션을 구성하기 때문이다.
Servlet 3.0으로 스펙이 업데이트 되면서 web.xml 설정을 WebApplicationInitializer 인터페이스를 구현하여 대신 할 수 있게 되었고
이를 구현한 SpringBootServletInitializer를 상속받아 외부 Tomcat에서 스프링부트가 실행되도록 해준다.
SpringBootServletInitializer를 상속 받는 다는 것은 tomcat 같은 Servlet Container 환경에서
Spring Boot 애플리케이션 동작 가능 하도록 웹 애플리케이션 컨텍스트를 구성한다는 의미.
*/
6. war 파일 생성하기
1)해당프로젝트 우클릭 -> Run As
-> Maven Install
-> c:/나만의경로/프로젝트명/target/mymelon-0.0.1-SNAPSHOT.war 생성
Filezilla로 개별적으로 업로드 하거나 ROOT.war로 생성후 배포
2)주의사항
Spring Boot는 기본적으로 톰캣이 내장되어 있으므로
ROOT/WEB-INF/lib 폴더에서 Tomcat관련 .jar 삭제해야 함
① tomcat-embed-core-9.0.68.jar
② tomcat-embed-el-9.0.68.jar
③ tomcat-embed-jasper-9.0.58.jar
mysql -u 아이디 -p 아이디
[내아이디@umj64-002 ~]$ tomcat/bin/catalina.sh stop <- 톰캣서버 중지
---------------------------------------------------
Using CATALINA_BASE: /home/hosting_users/pretyimo/tomcat
Using CATALINA_HOME: /home/hosting_users/pretyimo/tomcat
Using CATALINA_TMPDIR: /home/hosting_users/pretyimo/tomcat/temp
Using JRE_HOME: /usr/local/jdk7
Using CLASSPATH: /home/hosting_users/pretyimo/tomcat/bin/bootstrap.jar:/home/hosting_users/pretyimo/tomcat/bin/tomcat-juli.jar
---------------------------------------------------
[내아이디@umj64-002 ~]$ tomcat/bin/catalina.sh start <- 톰캣서버 시작
---------------------------------------------------
Using CATALINA_BASE: /home/hosting_users/pretyimo/tomcat
Using CATALINA_HOME: /home/hosting_users/pretyimo/tomcat
Using CATALINA_TMPDIR: /home/hosting_users/pretyimo/tomcat/temp
Using JRE_HOME: /usr/local/jdk7
Using CLASSPATH: /home/hosting_users/pretyimo/tomcat/bin/bootstrap.jar:/home/hosting_users/pretyimo/tomcat/bin/tomcat-juli.jar
---------------------------------------------------
<!-- Maria DB 의존성 추가 -->
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<scope>runtime</scope>
</dependency>
2. application.properties
------------------------------------------------- application.properties
#주석처리
#server.port=9095
#cafe24서버 MariaDB연결
spring.datasource.driverClassName=org.mariadb.jdbc.Driver
spring.datasource.url=jdbc:mariadb://localhost:3306/DB명
spring.datasource.username=root
spring.datasource.password=1234
3. DAO 클래스 수정
------------------------------------------------- MediagroupDAO.java
sql.append(" INSERT INTO mediagroup(mediagroupno, title)");
sql.append(" VALUES((select ifnull(max(mediagroupno),0)+1 from mediagroup as TB), ?)");
------------------------------------------------- MediaDAO.java
sql.append(" INSERT INTO media(mediano,");
sql.append(" title, rdate, poster, filename, filesize, mview, mediagroupno)");
sql.append(" VALUES((select ifnull(max(mediano),0)+1 from media as TB),");
sql.append(" ?, now(), ?, ?, ?, 'Y', ?)");
4. UploadSaveManager 수정
------------------------------------------------- UploadSaveManager.java
public static String saveFileSpring30(MultipartFile multipartFile, String basePath) {
.....
//String serverFullPath = basePath + "\\" + fileName;
//cafe24서버
String serverFullPath = basePath + "/" + fileName;
System.out.println("fileName: " + fileName);
System.out.println("serverFullPath: " + serverFullPath);
.....
}//saveFileSpring30() end
5. ServletInitializer 클래스
※ 프로젝트 최초 생성시 war로 하게 되면 자동 추가됨
------------------------------------------------- ServletInitializer.java
package kr.co.mymelon;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Spring07MymelonApplication.class);
}//
}//class end
mymelon 프로젝트 우클릭 → properties → java Version 1.8로 수정
1) 해당프로젝트 우클릭
-> Run As
-> Maven Install
-> c:/나만의경로/프로젝트명/target/mymelon-0.0.1-SNAPSHOT.war 생성
Filezilla로 개별적으로 업로드 하거나 ROOT.war로 생성후 배포
2) 주의사항 ★
Spring Boot는 기본적으로 톰캣이 내장되어 있으므로
ROOT/WEB-INF/lib 폴더에서 Tomcat관련 .jar 삭제해야 함
① tomcat-embed-core-9.0.68.jar
② tomcat-embed-el-9.0.68.jar
③ tomcat-embed-jasper-9.0.58.jar