728x90
반응형

 

SQL Dialects

항상 데이터베이스 hibernate.dialect의 올바른 org.hibernate.dialect.Dialect서브 클래스로 특성을 설정하세요.

 

dialect를 지정하면, Hibernate는 위에 열거 된 다른 프로퍼티들 중 일부에 적절한 기본값을 사용할 것입니다.

 

즉, 수동으로 지정하지 않아도됩니다.

 

Hibernate SQL Dialects ( hibernate.dialect)

DB2 org.hibernate.dialect.DB2Dialect
DB2 AS/400 org.hibernate.dialect.DB2400Dialect
DB2 OS390 org.hibernate.dialect.DB2390Dialect
PostgreSQL org.hibernate.dialect.PostgreSQLDialect
MySQL5 org.hibernate.dialect.MySQL5Dialect
MySQL5 with InnoDB org.hibernate.dialect.MySQL5InnoDBDialect
MySQL with MyISAM org.hibernate.dialect.MySQLMyISAMDialect
Oracle (any version) org.hibernate.dialect.OracleDialect
Oracle 9i org.hibernate.dialect.Oracle9iDialect
Oracle 10g org.hibernate.dialect.Oracle10gDialect
Oracle 11g org.hibernate.dialect.Oracle10gDialect
Sybase org.hibernate.dialect.SybaseASE15Dialect
Sybase Anywhere org.hibernate.dialect.SybaseAnywhereDialect
Microsoft SQL Server 2000 org.hibernate.dialect.SQLServerDialect
Microsoft SQL Server 2005 org.hibernate.dialect.SQLServer2005Dialect
Microsoft SQL Server 2008 org.hibernate.dialect.SQLServer2008Dialect
SAP DB org.hibernate.dialect.SAPDBDialect
Informix org.hibernate.dialect.InformixDialect
HypersonicSQL org.hibernate.dialect.HSQLDialect
H2 Database org.hibernate.dialect.H2Dialect
Ingres org.hibernate.dialect.IngresDialect
Progress org.hibernate.dialect.ProgressDialect
Mckoi SQL org.hibernate.dialect.MckoiDialect
Interbase org.hibernate.dialect.InterbaseDialect
Pointbase org.hibernate.dialect.PointbaseDialect
FrontBase org.hibernate.dialect.FrontbaseDialect
Firebird org.hibernate.dialect.FirebirdDialect

출처 : Hibernate

 

728x90
반응형
728x90
반응형

 

이전에 Spring Boot + Gradle 프로젝트를 Jar로 배포하는 방법을 알아보았습니다.

 

하지만 Spring Boot 에선 Jar로 배포시 JSP 사용이 불가하고 webapp 폴더를 무시한다고 합니다.

 

그렇다면 국내 솔루션 업체들이 license 를 제공하는 방식이 WEB-INF 안에 파일유무를 체크하는데 

 

Jar 로 배포하면 사용하지 못한다는게 현실입니다.

 

https://gigas-blog.tistory.com/114

 

[Spring] Spring Boot 2.0 Gradle Jar 배포

Spring Boot 의 강점은 내장 서버가 있어 실행 가능한 Jar 파일을 만들어 배포가 쉽습니다. Spring Boot의 많은 의존성 Library 와 사용자가 추가한 Library 를 하나의 Jar파일로 패키징 해준다는게 정말 대단한것..

gigas-blog.tistory.com

 

 

 

 

War는 별도의 내장 서버를 사용하지 않고 외장 서버에 배포할 수 있습니다.

 

예전부터 웹 서버에 반영을 해본분들은 War 배포를 많이 아시겠지만 요즘 새로 시작하시는분들은 낮설 수 있어서 알아보려고 합니다.

 

 

 

 

 

Sprint Boot + Gradle 프로젝트를 SpringBootTest 이름으로 생성했습니다.

 

생성할때 Packaging 을 War로 선택하시면 SevletInitializer.java 라는 파일이 생성됩니다.

 

SpringBoot 에서는 web.xml 을 사용하지 않기 때문에 이곳에서 설정이 가능합니다.

 

그리고 War 로 배포할때엔 여기서 main을 구축해야만 합니다.

 

 

 

 

 

기존처럼 SpringBootTestApplication.java 를 사용하지 않기 때문에 전체를 주석처리 하거나 삭제합니다.

 

개발은 내장톰켓을 사용하시는 분들은 주석처리하는게 편하실겁니다.

//@SpringBootApplication
//public class SpringBootTestApplication {

//    public static void main(String[] args) {
//        SpringApplication.run(SpringBootTestApplication.class, args);
//    }

//}

 

 

 

 

ServletInitializer class 에 @SpringBootApplication 어노테이션을 추가합니다.

 

configure 함수의 SpringBootTestApplication.class 에서 SevletInitializer.class 로 수정하고, main 함수도 정의해주겠습니다.

 

Java 에서의 설정은 이것으로 마무리 하고 Gradle 설정을 해보겠습니다.

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

// War
@SpringBootApplication
public class ServletInitializer extends SpringBootServletInitializer {

    // DevTool
//    @Override
//    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
//        return application.sources(SpringBootTestApplication.class);
//    }

    // War Packaging
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(ServletInitializer.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(ServletInitializer.class, args);
    }

}

 

 

 

 

build.gradle 파일을 열어서 War plugin을 추가해줍니다.

plugins {
    id 'war'
}

// or

apply plugin: 'war'

 

 

 

 

build.gradle 에서 War 생성관련 설정을 할 수 있습니다.

 

Name 과 Version, File Name 등을 설정할 수 있으며 따로 설정이 없다면 프로젝트명 + Version 이 붙어서 생성됩니다.

bootWar {
    archiveBaseName = '-'
    archiveFileName = '-.war'
    archiveVersion = "0.0.0"
}

 

 

 

 

그리고 외부 톰캣을 사용한다는 providedRuntime 을 설정해주어야합니다.

 

기존에 사용하던 runtimeOnly 'org.springframework.boot:spring-boot-devtools' 이부분은 주석처리하거나 제거해주면 됩니다.

providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'

 

 

 

 

 

준비는 끝났으며 War 를 만들어줍니다.

 

CLI 터미널에서 명령어로 생성해보겠습니다.

 

만들어준 SpringBootTest 경로로 들어갑니다.

 

Spring Boot 를 War로 생성하기 때문에 bootWar 명령어롤 통해 War 를 생성합니다.

 

 

 

 

 

 

빌드가 성공하면 프로젝트 경로로 들어가서 확인할 수 있습니다.

 

build > libs 안에 War 파일이 생성됨을 알 수 있습니다.

 

 

 

 

 

 

 

IntelliJ 에서는 Gradle 탭에서 간단하게 생성이 가능합니다.

 

Tasks > build 안에 실행가능한 bootWar 스크립트를 더블클릭하면 됩니다.

 

 

 

 

 

 

 

정상적으로 실행이 되면 아래와 같은 문구가 보여질 것입니다.

 

 

 

 

 

 

War 파일을 생성했으니 실행하는 방법을 알아보겠습니다.

 

서버와 마찬가지로 로컬에도 톰캣을 돌려서 실행할 수 있습니다.

 

저는 Tomcat 9 를 설치한 다음 webapps 폴더 안에 .war 를 넣어주었습니다.

 

 

 

 

 

Deploy 절차를 진행하기 위해 Tomcat을 새로 시작하겠습니다.

 

터미널 에서 tomcat 이 설치된 경로에서 bin파일로 진입합니다.

 

많은 실행파일이 있지만 shutdown.sh 와 startup.sh 파일을 사용해서 tomcat 서버를 종료하거나 실행하면됩니다.

 

tomcat 종료 ./shutdown.sh

 

tomcat 실행 ./startup.sh

 

 

 

 

 

정상적으로 오류없이 서버가 동작하였습니다.

 

 

 

 

 

 

Tomcat 을 실행하면 war 파일을 Deploy 하여 폴더가 만들어지게 됩니다.

 

 

 

 

 

 

잘 로드 되는지 확인해보겠습니다.

 

war 파일명으로 폴더가 생성되기때문에 조금 긴 접속 경로가 설정되었네요.

 

http://localhost:8080/SpringBootTest-0.0.1-SNAPSHOT/

 

 

 

 

 

 

페이지는 따로 만들지 않았기 때문에 아래와 같이 나온다면 정상적으로 War 배포가 된것을 확인할 수 있습니다.

 

 

 

 

War로 배포했을때 ContextRoot 경로때문에 정보가 잘 나오지 않을 수 있습니다.

 

다음글에선 ROOT 설정에 대해서 알아보겠습니다.

 

728x90
반응형
728x90
반응형

 

IntelliJ 에서는 다양한 plugin을 지원하고 있습니다.

 

모든 plugin 이 설치가 되있다면 엄청 무거운 프로그램이 되기 때문에 필요한 plugin 만설치하도록 권장하고 있습니다.

 

Spring Boot 개발하면서  Lombok plugin 을 많이 사용하는데 자세한 정보를 찾아보는걸 권장드립니다.

 

Lombok plugin 이 설치되어있지 않다면 프로젝트에 빨간줄이 그어집니다.

 

빌드할때에는 문제가 되지 않지만 자동완성등 전체적인 기능을 지원받기위해서  lombok을 설치해보겠습니다.

 

 

 

 

 

프로그램 설명은 MAC 기준으로 작성되었습니다.

 

IntelliJ IDEA > Preferences 메뉴로 이동합니다.

 

 

 

Plugins 탭으로 이동합니다.

 

검색 필드에 lombok을 입력합니다.

 

 

아래와 같이 자동완성이 되어지는데 첫번째 Lombok을 클릭합니다.

 

 

Lombok 설명이 나와있고 우측 Install 버특을 클릭합니다.

 

 

내용에 동의합니다.

 

 

 

설치는 오래걸리지 않습니다.

 

Restart IDE 버튼을 클릭합니다.

 

 

Restart 를 다시 클릭합니다.

 

 

설치가 완료되고 바로 적용되는건 아닙니다.

 

남은 설정을 위해 IntelliJ IDEA > Preferences 메뉴로 이동합니다.

 

Build, Execution, Deployment > Compiler > Annotation Processors 메뉴로 이동합니다.

 

우측의 Enable annotaition processing 체크박스를 체크 하고 OK 버튼을 클릭하면 마무리가 됩니다.

 

 

getter setter 빨간 에러는 사라지고 어노테이션 자동완성도 잘되는것을 알 수 있습니다.

728x90
반응형

+ Recent posts