-
Notifications
You must be signed in to change notification settings - Fork 0
DNET_TryJava
nishi_74322014 edited this page Aug 3, 2026
·
1 revision
OAuth2、OIDCのID Federation(連携)コードを書くために、
- Javaの開発環境を構築して
- Spring MVCをチョロっと書いてみる
ASP.NET MVCが解っていれば、それほど難しくないと思う。
前提条件:
- イントラ・プロシキ環境下で無い
- 32bitと64bitがあるので揃えること
2018年9月よりOracke Javaは有償となったため、同等の機能を持つAdopt Open JDKをインストール
Javaの統合開発環境
Spring Framework開発用のEclipseプラグイン
- Eclipseの[Menu]の[Help] → [Eclipse MarketPlace]を選択
- 表示されたダイアログのFindに「STS」と入力
- STS(Spring Tool Suite)を表示
- Installボタンを押下
- すべての機能をインストールする
- ライセンス条項に同意する
- 最後にEclipseを再起動する
起動後に、[Menu]の[Window]から、
- [Perspective] → [Open Perspective] → [Java]
- [Perspective] → [Open Perspective] → [Other...] → [Spring]
と、選択すると使用し易い。
- Eclipseの[Menu]の[File] → [New] → [Project]を選択
- 表示されたdialogで[Spring Boot] → [Spring Starter Project]を選択し[Next]を押下
- NameとPackageを適当にリネーム(demoからtest1などに変更する)し[Next]を押下
- 必要な依存関係を追加(Web、Securityを追加)し[Finish]を押下
Project Explorerに移動してapplication.propertiesの設定を行う。
-
ポート番号の変更
- port番号8080を他が使用している場合、port番号8090などに変更する
server.port = 8090 -
Basic認証のアカウント設定
- Spring SecurityではデフォルトでBasic認証がかかるので、アカウントを設定する
security.user.name=hoge security.user.password=hoge
- Project Explorerでプロジェクトを選択した状態で、
- [Menu]の[Run] → [Run as] → [Spring Boot App]を選択
- プロジェクトが起動したら、http://localhost:8090/ にアクセス
- 基本認証を要求されたら、hoge:hogeを入力
- 以下の画面(404)が返ったら、ひとまず、プロジェクトは実行できたことになる
pom.xml(Apache Maven≒NuGetの設定ファイル)をダブルクリックして開き、Dependenciesタグに以下を追加:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>※ parentにdefaultバージョンの設定がない場合は、dependencyの中に、versionを設定する必要がある。
- Project ExplorerでApp.java(Test1Application.java)を右クリック
- [New] → [Class]を選択
- 表示されたdialogの[Name]に「HeloController」と入力し[Finish]を押下
- HeloControllerクラスが生成されるので以下のように修正
実装例:
package com.example.test1;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
@Controller
public class HeloController {
@RequestMapping(value="/", method=RequestMethod.GET)
public ModelAndView index(ModelAndView mav) {
mav.setViewName("index");
mav.addObject("msg","お名前を書いて送信してください。");
return mav;
}
@RequestMapping(value="/", method=RequestMethod.POST)
public ModelAndView send(@RequestParam("text1")String str, ModelAndView mav) {
mav.addObject("msg","こんにちは、" + str + "さん!");
mav.addObject("value",str);
mav.setViewName("index");
return mav;
}
}ポイント:
-
@Controllerアノテーションでコントローラーを定義 -
@RequestMappingでルーティングを設定 -
@PathVariable,@RequestParamでRequestと引数とのBindingを定義 - ビューに対する引数になるModelAndViewを定義(outパラメタ)
- Project Explorerで
[\test1\src\main\resources\templates]を右クリック - [New] → [Other...]を選択
- 表示されたdialogの[Web] → [HTML File]を選択し[Next]を押下
- [File name]に「index.html」と入力し[Next]を押下
- [New HTML File (5)]を選択し、[Finish]を押下
- 生成されたファイルを以下のように修正
実装例:
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>top page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
h1 { font-size:18pt; font-weight:bold; color:gray; }
body { font-size:13pt; color:gray; margin:5px 25px; }
</style>
</head>
<body>
<h1>Helo page</h1>
<p th:text="${msg}">please wait...</p>
<form method="post" action="/">
<input type="text" name="text1" th:value="${value}" />
<input type="submit" value="Click" />
</form>
</body>
</html>- Project Explorerでプロジェクトを選択した状態で、[Menu]の[Run]を選択
- 二回目以降は[Run As]ではなく[Run]を押下
- プロジェクトが起動したら、http://localhost:8090/ にアクセス
- 画面が表示されたら、Spring MVCは実行できたことになる
Debug実行をする場合は、
- 必要に応じてブレークポイントを設定
- [Menu]の[Debug]を押下してDebug実行を開始
- 赤波線が表示された場合、赤波線にフォーカスしてimportが表示されたらそれを選択
- 名前空間をインポートできない場合はpom.xmlに依存関係を追加する
- groupId(必須)
- artifactId(必須)
- version(推奨バージョンがない場合に必須)
- チェックされた例外(throws キーワード)
- 非チェック例外(RuntimeException派生)
MSDNの対比ドキュメント:https://msdn.microsoft.com/ja-jp/library/ms228602.aspx
主要トピック:
- 概要
- ソース ファイルの名前付け規則
- データ型
- 演算子
- 配列
- 構造体
- 例外
- フロー制御
- ループ ステートメント
- Main () およびその他のメソッド
- 不特定の数のパラメータの使用
- クラスの基本事項
- プロパティ
- 継承と派生クラス
- イベント
- 演算子のオーバーロード
- C# の高度な手法
- ガベージ コレクション
- 安全なコードと安全でないコード
Tags: 移行, Java, Spring, 開発環境
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。