Javaを書いてみる。
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>Java]]
*目次 [#d71491ce]
#contents
*概要 [#k8daa9b3]
OAuth2、OIDCのID Federation(連携)コードを書くために、
-Javaの開発環境を構築して
-Spring MVCをチョロっと書いてみる。
ASP.NET MVCが解っていれば、それほど難しくないと思う。
*開発環境の構築 [#rce28b20]
-イントラ・プロシキ環境下で無い。
-32bitと64bitがあるので揃えること。
**JDK [#g063eb59]
2018年9月より[[Oracke Javaは有償>Java有償化について調べて...
同等の機能を持つAdopt Open JDKをインストール
-[[Java8のLTS版で、hotspotを選択する。>Java有償化について...
**[[Eclipse]] [#e4292689]
**STS(Spring Tool Suite) [#a60448a4]
-この手順では、Eclipseの[Menu]の[Help] -> [Eclipse Market...
-表示されたダイアログのFindに「STS」と入力し、STS(Spring ...
-Installボタンを押下してインストールする。
--すべての機能をインストールする。
--ライセンス条項に同意する。
#ref(INS_STS.png,left,nowrap,STSのInstall,60%)
-最後にEclipseを再起動する。
-なお、起動後に、推奨されるビュー(Perspective)を、[Menu...
--[Perspective] -> [Open Perspective] -> [Java]
--[Perspective] -> [Open Perspective] -> [Other...] -> [S...
>と、選択すると使用し易い。
*プロジェクトの開発 [#p37ad8ad]
**プロジェクトの作成 [#td4b6575]
-Eclipseの[Menu]の[File] -> [New] -> [Project]を選択する。
-表示されたdialogで[Spring Boot] -> [Spring Starter Proje...
-NameとPackageを適当にリネーム(demoらかtest1などに変更す...
-必要な依存関係を追加(Web、Securityを追加)し[Finish]を...
-Project Explorerに移動してapplication.propertiesの設定を...
--port番号8080を他が使用している場合、port番号8090などに...
server.port = 8090
--Spring SecurityではデフォルトでBasic認証がかかるので、...
security.user.name=hoge
security.user.password=hoge
**プロジェクトの実行 [#xc26033c]
-Project Explorerでプロジェクトを選択した状態で、
-[Menu]の[Run] -> [Run as] -> [Spring Boot App]を選択する。
-プロジェクトが起動したら、http://localhost:8090/にアクセ...
-基本認証を要求されたら、hoge:hogeを入力する。
-以下の画面(404)が返ったら、ひとまず、プロジェクトは実...
#ref(RunAsSpringBootApp.png,left,nowrap,RunAsSpringBootAp...
**プロジェクトの実装 [#b4160c9b]
***テンプレート・エンジンの参照を追加する。 [#jb331ba9]
-pom.xml(Apache Maven≒NuGetの設定ファイル)を~
ダブルクリックして開き、Dependenciesタグの各属性に入力し...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
-なお、parentにdefaultバージョンの設定がない場合は、~
dependencyの中に、versionを設定する必要がある。
***コントローラーを作成する。 [#jf28b37b]
-Project ExplorerでApp.java(Test1Application.java)を右ク...
-[New] -> [Class]を選択し、表示されたdialogの[Name]に「He...
-HeloControllerクラスが生成されるので以下のように修正する。
--@Controllerというアノテーションを付与する。
--indexメソッドを定義して、
---RequestMappingアノテーションを追加してRoutingを設定す...
---@PathVariable、@RequestParamで、Requestと引数とのBindi...
---ビューに対する引数になるModelAndViewを定義する(outパ...
package com.example.test1;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMa...
import org.springframework.web.bind.annotation.RequestMe...
import org.springframework.web.bind.annotation.RequestPa...
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 s...
mav.addObject("msg","こんにちは、" + str + "さん!");
mav.addObject("value",str);
mav.setViewName("index");
return mav;
}
}
***テンプレート(ビュー的なモノ)を作成する。 [#zbf21255]
-Project Explorerで[\test1\src\main\resources\templates]...
-[New] -> [Other...]を選択し、表示されたdialogの[Web] -> ...
-表示されたdialogの[File name]に「index.html」と入力し[Ne...
-最後に、[New HTML File (5)] を選択し、[Finish]を押下する。
-生成されたファイルを以下のように修正し、Modelの値を表示...
<!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>
**Spring MVCを実行する。 [#t4f740c6]
***実行 [#haf00f2b]
-Project Explorerでプロジェクトを選択した状態で、[Menu]の...
(二回目以降は[Run As]ではなく[Run]を押下する。)
-プロジェクトが起動したら、「http://localhost:8090/」にア...
-以下の画面が返ったら、Spring MVCは実行できたことになる。
#ref(RunAsSpringMVC.png,left,nowrap,RunAsSpringMVC,60%)
***Debug実行 [#md5f77fa]
Debug実行をする場合は、
-必要に応じてブレークポイントを設定した後、
-[Menu]の[Debug]を押下してDebug実行を開始する。
**その他のトピック [#h6464102]
***名前空間の追加 [#ka095794]
-赤波線が表示された場合、赤波線にフォーカスしてimportが表...
-名前空間をインポートできない場合はpom.xmlに依存関係を追...
--groupId(必須)
--artifactId(必須)
--version(推奨バージョンがない場合に必須)
***例外 [#v2c2e7f5]
-チェックされた例外(throws キーワード)
-
***・・・ [#efa08f3b]
*参考 [#sebddf00]
**Java 開発者のための C# プログラミング言語 [#u518c997]
https://msdn.microsoft.com/ja-jp/library/ms228602.aspx
***概要 [#m76ac717]
https://msdn.microsoft.com/ja-jp/library/ms228361.aspx
***ソース ファイルの名前付け規則 [#p899caba]
https://msdn.microsoft.com/ja-jp/library/ms228500.aspx
***データ型 [#qa2b53a8]
https://msdn.microsoft.com/ja-jp/library/ms228360.aspx
***演算子 [#pfc89085]
https://msdn.microsoft.com/ja-jp/library/ms228601.aspx
***配列 [#l6a564de]
https://msdn.microsoft.com/ja-jp/library/ms228389.aspx
***構造体 [#wc9e55dd]
https://msdn.microsoft.com/ja-jp/library/ms228600.aspx
***例外 [#a5f00210]
https://msdn.microsoft.com/ja-jp/library/ms228505.aspx
***フロー制御 [#a2b63e32]
https://msdn.microsoft.com/ja-jp/library/ms228393.aspx
***ループ ステートメント [#b4e1fe76]
https://msdn.microsoft.com/ja-jp/library/ms228598.aspx
***Main () およびその他のメソッド [#i41dd547]
https://msdn.microsoft.com/ja-jp/library/ms228506.aspx
***不特定の数のパラメータの使用 [#k114635d]
https://msdn.microsoft.com/ja-jp/library/ms228391.aspx
***クラスの基本事項 [#w22070be]
https://msdn.microsoft.com/ja-jp/library/ms228632.aspx
***プロパティ [#w0be3350]
https://msdn.microsoft.com/ja-jp/library/ms228386.aspx
***継承と派生クラス [#b411706c]
https://msdn.microsoft.com/ja-jp/library/ms228387.aspx
***イベント [#p8bcb00c]
https://msdn.microsoft.com/ja-jp/library/ms228499.aspx
***演算子のオーバーロード [#a1ee5ee5]
https://msdn.microsoft.com/ja-jp/library/ms228498.aspx
***C# の高度な手法 [#y254c8b5]
https://msdn.microsoft.com/ja-jp/library/ms228395.aspx
***ガベージ コレクション [#w22da3e1]
https://msdn.microsoft.com/ja-jp/library/ms228629.aspx
***安全なコードと安全でないコード [#z8150d11]
https://msdn.microsoft.com/ja-jp/library/ms228628.aspx
終了行:
「[[.NET 開発基盤部会 Wiki>http://dotnetdevelopmentinfras...
-[[戻る>Java]]
*目次 [#d71491ce]
#contents
*概要 [#k8daa9b3]
OAuth2、OIDCのID Federation(連携)コードを書くために、
-Javaの開発環境を構築して
-Spring MVCをチョロっと書いてみる。
ASP.NET MVCが解っていれば、それほど難しくないと思う。
*開発環境の構築 [#rce28b20]
-イントラ・プロシキ環境下で無い。
-32bitと64bitがあるので揃えること。
**JDK [#g063eb59]
2018年9月より[[Oracke Javaは有償>Java有償化について調べて...
同等の機能を持つAdopt Open JDKをインストール
-[[Java8のLTS版で、hotspotを選択する。>Java有償化について...
**[[Eclipse]] [#e4292689]
**STS(Spring Tool Suite) [#a60448a4]
-この手順では、Eclipseの[Menu]の[Help] -> [Eclipse Market...
-表示されたダイアログのFindに「STS」と入力し、STS(Spring ...
-Installボタンを押下してインストールする。
--すべての機能をインストールする。
--ライセンス条項に同意する。
#ref(INS_STS.png,left,nowrap,STSのInstall,60%)
-最後にEclipseを再起動する。
-なお、起動後に、推奨されるビュー(Perspective)を、[Menu...
--[Perspective] -> [Open Perspective] -> [Java]
--[Perspective] -> [Open Perspective] -> [Other...] -> [S...
>と、選択すると使用し易い。
*プロジェクトの開発 [#p37ad8ad]
**プロジェクトの作成 [#td4b6575]
-Eclipseの[Menu]の[File] -> [New] -> [Project]を選択する。
-表示されたdialogで[Spring Boot] -> [Spring Starter Proje...
-NameとPackageを適当にリネーム(demoらかtest1などに変更す...
-必要な依存関係を追加(Web、Securityを追加)し[Finish]を...
-Project Explorerに移動してapplication.propertiesの設定を...
--port番号8080を他が使用している場合、port番号8090などに...
server.port = 8090
--Spring SecurityではデフォルトでBasic認証がかかるので、...
security.user.name=hoge
security.user.password=hoge
**プロジェクトの実行 [#xc26033c]
-Project Explorerでプロジェクトを選択した状態で、
-[Menu]の[Run] -> [Run as] -> [Spring Boot App]を選択する。
-プロジェクトが起動したら、http://localhost:8090/にアクセ...
-基本認証を要求されたら、hoge:hogeを入力する。
-以下の画面(404)が返ったら、ひとまず、プロジェクトは実...
#ref(RunAsSpringBootApp.png,left,nowrap,RunAsSpringBootAp...
**プロジェクトの実装 [#b4160c9b]
***テンプレート・エンジンの参照を追加する。 [#jb331ba9]
-pom.xml(Apache Maven≒NuGetの設定ファイル)を~
ダブルクリックして開き、Dependenciesタグの各属性に入力し...
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
-なお、parentにdefaultバージョンの設定がない場合は、~
dependencyの中に、versionを設定する必要がある。
***コントローラーを作成する。 [#jf28b37b]
-Project ExplorerでApp.java(Test1Application.java)を右ク...
-[New] -> [Class]を選択し、表示されたdialogの[Name]に「He...
-HeloControllerクラスが生成されるので以下のように修正する。
--@Controllerというアノテーションを付与する。
--indexメソッドを定義して、
---RequestMappingアノテーションを追加してRoutingを設定す...
---@PathVariable、@RequestParamで、Requestと引数とのBindi...
---ビューに対する引数になるModelAndViewを定義する(outパ...
package com.example.test1;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMa...
import org.springframework.web.bind.annotation.RequestMe...
import org.springframework.web.bind.annotation.RequestPa...
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 s...
mav.addObject("msg","こんにちは、" + str + "さん!");
mav.addObject("value",str);
mav.setViewName("index");
return mav;
}
}
***テンプレート(ビュー的なモノ)を作成する。 [#zbf21255]
-Project Explorerで[\test1\src\main\resources\templates]...
-[New] -> [Other...]を選択し、表示されたdialogの[Web] -> ...
-表示されたdialogの[File name]に「index.html」と入力し[Ne...
-最後に、[New HTML File (5)] を選択し、[Finish]を押下する。
-生成されたファイルを以下のように修正し、Modelの値を表示...
<!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>
**Spring MVCを実行する。 [#t4f740c6]
***実行 [#haf00f2b]
-Project Explorerでプロジェクトを選択した状態で、[Menu]の...
(二回目以降は[Run As]ではなく[Run]を押下する。)
-プロジェクトが起動したら、「http://localhost:8090/」にア...
-以下の画面が返ったら、Spring MVCは実行できたことになる。
#ref(RunAsSpringMVC.png,left,nowrap,RunAsSpringMVC,60%)
***Debug実行 [#md5f77fa]
Debug実行をする場合は、
-必要に応じてブレークポイントを設定した後、
-[Menu]の[Debug]を押下してDebug実行を開始する。
**その他のトピック [#h6464102]
***名前空間の追加 [#ka095794]
-赤波線が表示された場合、赤波線にフォーカスしてimportが表...
-名前空間をインポートできない場合はpom.xmlに依存関係を追...
--groupId(必須)
--artifactId(必須)
--version(推奨バージョンがない場合に必須)
***例外 [#v2c2e7f5]
-チェックされた例外(throws キーワード)
-
***・・・ [#efa08f3b]
*参考 [#sebddf00]
**Java 開発者のための C# プログラミング言語 [#u518c997]
https://msdn.microsoft.com/ja-jp/library/ms228602.aspx
***概要 [#m76ac717]
https://msdn.microsoft.com/ja-jp/library/ms228361.aspx
***ソース ファイルの名前付け規則 [#p899caba]
https://msdn.microsoft.com/ja-jp/library/ms228500.aspx
***データ型 [#qa2b53a8]
https://msdn.microsoft.com/ja-jp/library/ms228360.aspx
***演算子 [#pfc89085]
https://msdn.microsoft.com/ja-jp/library/ms228601.aspx
***配列 [#l6a564de]
https://msdn.microsoft.com/ja-jp/library/ms228389.aspx
***構造体 [#wc9e55dd]
https://msdn.microsoft.com/ja-jp/library/ms228600.aspx
***例外 [#a5f00210]
https://msdn.microsoft.com/ja-jp/library/ms228505.aspx
***フロー制御 [#a2b63e32]
https://msdn.microsoft.com/ja-jp/library/ms228393.aspx
***ループ ステートメント [#b4e1fe76]
https://msdn.microsoft.com/ja-jp/library/ms228598.aspx
***Main () およびその他のメソッド [#i41dd547]
https://msdn.microsoft.com/ja-jp/library/ms228506.aspx
***不特定の数のパラメータの使用 [#k114635d]
https://msdn.microsoft.com/ja-jp/library/ms228391.aspx
***クラスの基本事項 [#w22070be]
https://msdn.microsoft.com/ja-jp/library/ms228632.aspx
***プロパティ [#w0be3350]
https://msdn.microsoft.com/ja-jp/library/ms228386.aspx
***継承と派生クラス [#b411706c]
https://msdn.microsoft.com/ja-jp/library/ms228387.aspx
***イベント [#p8bcb00c]
https://msdn.microsoft.com/ja-jp/library/ms228499.aspx
***演算子のオーバーロード [#a1ee5ee5]
https://msdn.microsoft.com/ja-jp/library/ms228498.aspx
***C# の高度な手法 [#y254c8b5]
https://msdn.microsoft.com/ja-jp/library/ms228395.aspx
***ガベージ コレクション [#w22da3e1]
https://msdn.microsoft.com/ja-jp/library/ms228629.aspx
***安全なコードと安全でないコード [#z8150d11]
https://msdn.microsoft.com/ja-jp/library/ms228628.aspx
ページ名: