Spring Boot STS利用

Mavenで複数画面をもつSpring Bootプロジェクトを作成してみた

今回は、下記記事と同じ機能を、STS上でMavenで実装してみたので、そのサンプルプログラムを共有する。

SQLログ出力内容をカスタマイズしてみた今回は、SQLログ出力内容をカスタマイズし、SQLの実行時間や呼出メソッドをSQLログに出力してみたので、そのサンプルプログラムを共有す...

前提条件

下記記事の手順に従って、STSの場合のlombokの設定が完了していること。

STS(Spring Tool Suite)上でlombokを利用してみた今回は、STSを利用して、lombokを利用してみたので、その手順を共有する。STS上でlombokを利用できるようにするには、あらかじ...

また、下記サイトの手順に従って、プロパティエディタPluginのインストールが完了していること
https://www.saka-en.com/eclipse/eclipse-properties-editor-install/

サンプルプログラムの内容

今回のサンプルプログラムの構成は、以下の左側の構成となる。なお、右側は、以前作成したGradleを利用した場合のプログラム構成となる。
サンプルプログラムの構成



フリーランスエンジニアのエージェントは就業中でも無料で登録できるITエンジニアには、フリーランスという働き方がある。 フリーランスとは、会社や団体などに所属せず、仕事に応じて自由に契約する人のこ...

pom.xmlの内容は以下の通りで、以前作成したGradleを利用した場合のプログラムの「build.gradle」と同じ機能を実装している。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
       https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.4.RELEASE</version>
        <relativePath/>  <!-- lookup parent from repository  --> 
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>13</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <!-- log4j2を利用するため、Spring BootデフォルトのLogbackを -->
            <!-- 利用しないよう設定 -->
            <exclusions>
               <exclusion>
                   <groupId>org.springframework.boot</groupId>
                   <artifactId>spring-boot-starter-logging</artifactId>
               </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- lombokの設定 -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
        <!-- oracleを利用するための設定 -->
        <dependency>
            <groupId>com.oracle.jdbc</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>1.0</version>
            <scope>system</scope>
            <systemPath>${basedir}/lib/ojdbc6.jar</systemPath>           
        </dependency>
        <!-- mybatisを利用するための設定 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-commons-core</artifactId>
            <version>1.1.0.RELEASE</version>
        </dependency>
        <!-- log4j2を利用するための設定 -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
        </dependency>
        <!-- AOPを利用するための設定 -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
        </dependency>
        <!-- log4j2の設定でymlファイルを利用するための設定 -->
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-yaml</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>    
        </dependency>
        <!-- Apache Common JEXLを利用するための設定 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-jexl3</artifactId>
            <version>3.0</version>  
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                     <groupId>org.junit.vintage</groupId>
                     <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
             <plugin>
                 <groupId>org.springframework.boot</groupId>
                 <artifactId>spring-boot-maven-plugin</artifactId>
             </plugin>
        </plugins>
    </build>

</project>

なお、log4j2を利用するため、Spring BootデフォルトのLogbackを利用しないようにする設定が必要であるが、それは「spring-boot-starter」プロジェクトで「spring-boot-starter-logging」を利用しない設定を行うことで実現できる。



また、pom.xmlを変更した場合は、以下のように、mavenプロジェクトの更新を行っている。
mavenプロジェクトの更新_1

mavenプロジェクトの更新_2

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/java/tree/master/sts-make-spring-boot-db-log-maven/demo

要点まとめ

  • pom.xmlのdependencyタグに追加したいライブラリを追記することで、Gradleの場合と同じように、必要なライブラリを追記することができる。
  • Spring BootデフォルトのLogbackを利用しないようにするには、「spring-boot-starter」プロジェクトで「spring-boot-starter-logging」を利用しない設定を行う。