Skip to content

DNET_TryJava

nishi_74322014 edited this page Sep 11, 2026 · 1 revision

Javaを書いてみる。

概要

OAuth2、OIDCのID Federation(連携)コードを書くために、

  • Javaの開発環境を構築して
  • Spring MVCをチョロっと書いてみる。

ASP.NET MVCが解っていれば、それほど難しくないと思う。

開発環境の構築

  • イントラ・プロキシ環境下で無い。
  • 32bitと64bitがあるので揃えること。

JDK

2018年9月より Oracle Java は有償(Java有償化について調べてみた。)となったため、
同等の機能を持つ AdoptOpenJDK をインストール

移行メモ(正誤): 元ページの「イントラ・プロシキ」「Oracke Java」
「Adopt Open JDK」は、それぞれ「プロキシ」「Oracle Java」「AdoptOpenJDK」
の誤記のため修正した。

補足(最新化): AdoptOpenJDK は 2021年に Eclipse Foundation へ移管され、
現在は Eclipse Temurin(Adoptium)という名称になっている。

Eclipse

STS(Spring Tool Suite)

  • この手順では、Eclipseの[Menu]の[Help] -> [Eclipse MarketPlace]からインストールする。
  • 表示されたダイアログのFindに「STS」と入力し、STS(Spring Tool Suite)を表示する。
  • Installボタンを押下してインストールする。
    • すべての機能をインストールする。
    • ライセンス条項に同意する。

STSのInstall

  • 最後にEclipseを再起動する。

  • なお、起動後に、推奨されるビュー(Perspective)を、[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
    • 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)が返ったら、ひとまず、プロジェクトは実行できたことになる。

RunAsSpringBootApp

プロジェクトの実装

テンプレート・エンジンの参照を追加する。

  • pom.xml(Apache Maven ≒ NuGetの設定ファイル)を
    ダブルクリックして開き、Dependenciesタグの各属性に入力してOKを押下する。

    <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クラスが生成されるので以下のように修正する。
    • @Controllerというアノテーションを付与する。
    • indexメソッドを定義して、
      • RequestMappingアノテーションを追加してRoutingを設定する。
      • @PathVariable、@RequestParamで、Requestと引数とのBindingを定義する。
      • ビューに対する引数になるModelAndViewを定義する(outパラメタ)。
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;
	}
}

テンプレート(ビュー的なモノ)を作成する。

  • Project Explorerで[\test1\src\main\resources\templates]を右クリックし、
  • [New] -> [Other...]を選択し、表示されたdialogの[Web] -> [HTML File]を選択し[Next]を押下する。
  • 表示されたdialogの[File name]に「index.html」と入力し[Next]を押下する。
  • 最後に、[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を実行する。

実行

  • Project Explorerでプロジェクトを選択した状態で、[Menu]の[Run]を選択する。
    (二回目以降は[Run As]ではなく[Run]を押下する。)
  • プロジェクトが起動したら、「http://localhost:8090/」にアクセスする。
  • 以下の画面が返ったら、Spring MVCは実行できたことになる。

RunAsSpringMVC

Debug実行

Debug実行をする場合は、

  • 必要に応じてブレークポイントを設定した後、
  • [Menu]の[Debug]を押下してDebug実行を開始する。

その他のトピック

名前空間の追加

  • 赤波線が表示された場合、赤波線にフォーカスして import が表示されたらそれを選択。
  • 名前空間をインポートできない場合は pom.xml に依存関係を追加する。
    • groupId(必須)
    • artifactId(必須)
    • version(推奨バージョンがない場合に必須)

例外

  • チェックされた例外(throws キーワード)

・・・

移行メモ: 元ページでは「例外」の 2 項目め以降と「・・・」の項が
空のまま書きかけになっている。

参考

Java 開発者のための C# プログラミング言語

https://msdn.microsoft.com/ja-jp/library/ms228602.aspx


Tags: 移行, Java, OSS, 開発基盤

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally