#経緯
8月17日から入社2日後にアサイン先が決定し、入場日が9月1日までなので、入場までの期間を使って、現場で使用するSpringFramework(Spring4)をあらためて環境構築をすることにしました。
##概要
社内に検証用のサーバがあったので、検証用のサーバから環境を構築。ローカル側で実装を行い、サーバ側にデプロイ(配置)するための個人作業メモになります。
##環境・主な使用ツールなど
【ローカル】
OS : Windows10
ツール :
WinSCP(ファイル転送用)
TeraTerm(サーバアクセス用)
Eclipse + STS(SpringToolSuite)
⇒Eclipseインストールしてからのプラグイン導入(STS)で行う。
【サーバ】
OS : Red Hat Enterprise Linux 7.2(評価版) x86_64
Webサーバ : Tomcat + Apache
⇒インストールされていなかったので、導入から実施。
##動作環境
###Red Hat Enterprise Linux(RHEL)
バージョン7.2(既にインストール済み)
スタンドアロン環境なので、パッケージのインストールは、DVDから取得。
⇒yumリポジトリ設定が必要だが、既に設定済。
###Apache(httpd)
バージョン2.4系
インストール~設定~動作確認までを記録する
参照リスト記入
<参考サイト一覧>
Apache httpd 2.4 を CentOS 7 に yum でインストールする手順
###Tomcat
今回は、バージョン8.0系(8.0.30)をインストール
Tomcat動作するためにJavaが必要なため、インストールおよび設定
1.Javaインストール
・以下のリンクからLinux用のファイル(rpm)をダウンロード
[Java SE Development Kit 8 Downloads] (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
・ダウンロードしたファイルをSCP転送ツールにて、サーバにアップロードした後
以下のコマンドでインストール実行。
・ダウンロードしたSDKに切り替える```
$ sudo alternatives --config java
コマンド打つと以下の選択画面が表示。[3]を選択する
3 プログラムがあり 'java' を提供します。
選択 コマンド
*+ 1 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64/jre/bin/java
2 /usr/java/jdk1.8.0_101/jre/bin/java
3 /usr/java/jdk1.8.0_101/bin/java
・切り替わったかどうか。以下のコマンドで確認。
```$ java -version```
2.Tomcatインストール
yumからインストール。動作確認までの手順を書く。
<参考リンク>
[Tomcatインストール・設定](http://www.bnote.net/linux/tomcat8_install.shtml)
3.Apacheとtomcat連携
WebサーバとしてApache(httpd)で行い、APサーバとしてTomcatで行うためのモジュール設定方法を書く。
<参考リンク>
[ApacheとTomcat連携](http://www.bnote.net/linux/a_ajp_t.shtml)
##フレームワーク
ローカル(Windows)にて製造・動作確認を行い、サーバ環境にデプロイ。
まずは、ローカルでの開発環境を整える。
書籍などでSpringFramework4を体系的に実施。
<参照書籍>
[SpringFramework4プログラミング入門](https://www.amazon.co.jp/SpringFramework4%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E5%85%A5%E9%96%80-%E6%8E%8C%E7%94%B0-%E6%B4%A5%E8%80%B6%E4%B9%83/dp/4798041564)
[[改訂新版]Spring入門 ――Javaフレームワーク・より良い設計とアーキテクチャ](https://www.amazon.co.jp/dp/4774182176/ref=pd_lpo_sbs_dp_ss_3/351-3202737-6884138?pf_rd_m=AN1VRQENFRJN5&pf_rd_s=lpo-top-stripe&pf_rd_r=YS5JX3NDHCAR5AEHGQMM&pf_rd_t=201&pf_rd_p=187205609&pf_rd_i=4798041564)
###Spring Framework
統合開発環境ツールとしてEclipseを使用。
1. 専用のSTSをダウンロード
2. Eclipseのマーケットプレイスでプラグインをインストール
⇒Eclipseからプラグインをインストールする方法でやってみる。
####1. Eclipseインストール
[Pleiades All in Oneダウンロードサイト(http://mergedoc.sourceforge.jp/)](http://mergedoc.osdn.jp/)
⇒日本語対応版(4.6 Java、Standard)をインストール
ダウンロードしたフォルダを(C:\Eclipse_4.6)置く。
・プラグインのインストール
「ヘルプ」→「マーケットプレイス」選択
![マーケットプレイス.png](https://qiita-image-store.s3.amazonaws.com/0/138012/7d15a7e3-5ce5-4089-ac1d-566f5c77946d.png)
検索ボックスに「STS」入力すると、上記の画面からSTSインストール選択。
####2. Java環境設定
・以下のリンクからWindows用(32bit or 64bit)のファイルをダウンロード
[Java SE Development Kit 8 Downloads] (http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
・環境変数の追加
「コントロールパネル」→「システム」→「システムの詳細設定」→「環境変数」
・「システム環境変数」の変数の編集
変数名:JAVA_HOME
変数値:C:\Program Files\Java\jdk1.8.0_101(SDKインストール先)
新規追加を行う。
・Pathを編集:「新規」→ %JAVA_HOME%\bin を入力
以下のコマンドをプロンプトで入力し、確認。```
java -version
####3.Maven
・以下のリンクからMaven(3.3.9)をダウンロード
https://maven.apache.org/download.cgi
・ファイルを解凍し、C:\直下に配置する。
「システム環境変数」の変数の編集
・変数名:M3_HOMEの新規作成
変数値:C:\apache-maven-3.3.9
・Pathを編集:「新規」→ %M3_HOME%\bin を入力
以下のコマンドをプロンプトで入力し、確認。```
mvn -v
####4.SpringBootによるアプリケーション開発
Springベースでのアプリケーション開発を簡単に作成するためのフレームワーク。
作成したアプリケーションを別のサーバにデプロイする手順を記録。
・SpringBootでサンプルアプリ作成
- mavenで雛形を作成。
mvn -B archetype:generate -DgroupId=com.sueno -DartifactId=sueno -Dversion=1.0.0-SNAPSHOT -DarchetypeArtifactId=maven-archetype-quickstart
- 上記で作成したフォルダをEclipseでインポートし、フォルダ内のpom.xmlを編集
4.0.0
com.buoyancy
sueno
war
1.0.0-SNAPSHOT
sueno
http://maven.apache.org
org.springframework.boot
spring-boot-starter-parent
1.3.0.RELEASE
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
<properties>
<java.version>1.8</java.version>
</properties>
***作成ポイント***
1. `<packaging>war</packaging>`
パッケージをwarに修正
2. `<scope>provided</scope>`
spring-boot-starter-tomcatのscope項目をprovidedを追加。
- フォルダ内のApp.javaを編集。
package com.buoyancy;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class App extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(App.class);
}
@RequestMapping(value = "sueno", method = RequestMethod.GET)
public String getSomething() {
return "something";
}
}
***作成ポイント***
・SpringBootServletInitializerを継承する
・configureメソッドをOverrideする
- 一度、Ecplipse上で動作確認。
フォルダ上で右クリック。「実行」→「SpringBootアプリケーション 」を押す。
サーバ実行後に以下のアドレスにアクセスする。
http://localhost:8080/sueno/
ブラウザ上で「something」と表示されたら、アプリ作成完了。
・別のTomcatサーバでデプロイしてみる
・SpringBootで作成したアプリをwarファイルで作成。
インポートしたプロジェクト上で右クリック。
「実行」→「Maven Build」を押す。
ゴールの項目に「package」と入力→実行を押す。
「target」フォルダ配下に「sueno-1.0.0-SNAPSHOT.war」が生成される。
(表示されない場合は、一度、リフレッシュ「F5」を実行)
・tomcat配下のWebappにデプロイ(配置)。
作成したwarファイルをファイル転送ツール(WinSCP)で
デプロイしたいtomcatのwebapp配下に貼り付ける。
・動作確認
アドレスは、サーバ名後に「warファイル名/sueno」を入力(下記はサーバ名は例)
http://localhost:8080/sueno-1.0.0-SNAPSHOT/sueno
ブラウザ上で「something」と表示されたら、OKです。
以上になります。
##まとめ
すごく雑な感じで書いてみましたが、SpringBootやSTSを実務で動かしたことがなかったので、この期間にやってみました。
ローカル環境では、アプリ実行しても、サーバ環境でデプロイすると、Javaのバージョン違いやTomcatバージョンが異なっていたことで動かないことがありました。
もう少し、データアクセスも絡めたアプリをデプロイすることが目標だったので、進捗が遅くなり、期間まで試せなかったのが残念です。