[2022/11/07 MON] spring - mymelon project cafe24 호스팅

kangsun·2022년 11월 7일
0

Spring

목록 보기
6/24

cafe24 호스팅

호스팅을 하기위해 오라클 → mariaDB로 sql문을 다시 변경해줘야 한다.
※ 이전에 호스팅해놓은 파일은 반드시 백업해둘 것!


1. cafe24 myweb 초기화





(추가) pom.xml에 MariaDB 의존성 추가해야 DB에 연결이 된다.

https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client

2. 테이블 생성 및 수정

● 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


3. putty 에서 테이블 생성

  • SQL 서버 접속

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
   ---------------------------------------------------


4. pom.xml 의존성 추가

<!-- Maria DB 의존성 추가 -->
<dependency>
	<groupId>org.mariadb.jdbc</groupId>
	<artifactId>mariadb-java-client</artifactId>
	<scope>runtime</scope>
</dependency>


5. application 접속 아이디 비밀번호 수정

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


6. DAO create sql문 수정

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', ?)");
  • MediagroupDAO / create
  • MediaDAO / create



7. UploadSaveManager 수정

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





8. ServletInitializer 클래스 수정

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

9. JDK java 버전 변경

mymelon 프로젝트 우클릭 → properties → java Version 1.8로 수정

  • 원래는 17버전


10. 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

profile
코딩 공부 💻

0개의 댓글