0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【個人学習】boot_basic_application_propertiesを読んで環境設定とViewResolverの仕組みを理解した

0
Posted at

対象ファイル

  • src/main/resources/application.properties

はじめに

前回は Web リクエストを受け取る TestController.java を読んだ。
今回はサーバー環境や ViewResolver の動作を制御する設定ファイルである application.properties を見ていく。

Spring Boot 起動時にこの設定がどう読み込まれ、Controller から返された文字列がどうやって物理的な JSP パスへ変換されるのか、その流れを整理してみた。


application.properties(環境設定ファイル)

サーバーのポート番号や Spring MVC の ViewResolver 設定をキー・バリュー形式で定義する設定ファイルだ。

spring.application.name=boot_basic
server.port=9990
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp

設定の読み込みと動作フロー(Configuration Flow)

  1. アプリケーション起動時の設定読み込み
    Spring Boot 起動時、src/main/resources/application.properties が自動的にスキャンされ、環境変数としてロードされる。
  2. 内蔵 Web サーバーのポートバインディング
    server.port=9990 の設定に基づき、デフォルトの 8080 ポートではなく 9990 ポートで内蔵 Tomcat が起動する。
  3. InternalResourceViewResolver の自動構成
    spring.mvc.view.prefixspring.mvc.view.suffix の値を受け取り、Spring 内部で ViewResolver が自動生成される。
  4. リクエスト処理時の View パス解決
    Controller(例: TestController)が "aaa" という文字列を返却すると、ViewResolver が前後テキストを結合して /WEB-INF/views/aaa.jsp という物理パスを生成する。

気になった部分・改善ポイント

設定内容を読んでいて、いくつか重要な工夫や改善できそうなポイントが気になった。

1. ポート衝突の回避

デフォルトポート(8080)の代わりに 9990 ポートを明示的に指定している。
ローカル開発環境で他の Web アプリケーションやローカルサーバーとポートがバッティングするのを防ぐ良い設計だと思った。

2. セキュリティ領域(/WEB-INF/)の活用

Prefix パスを /WEB-INF/views/ に設定しているのがポイントだ。
/WEB-INF/ 配下のファイルはブラウザから直接 URL を入力してアクセスすることができない(403 または 404 になる)。
必ず Controller を経由させて描画させる安全な MVC 構造が作られている。

3. YAML 形式(application.yml)への移行検討

現在は .properties 形式で書かれているが、キーの接頭辞(spring.mvc.view. など)を何度も繰り返し書く必要がある。

// 改善案:階層構造で書ける YAML 形式にリファクタリングする
spring:
application:
name: boot_basic
mvc:
view:
prefix: /WEB-INF/views/
suffix: .jsp
server:
port: 9990

階層構造で記述できる .yml(YAML)形式に切り替えると、視認性が上がって設定項目が増えても管理しやすくなりそうだ。


設定キーのまとめ

設定キー (Property Key) 設定値 (Value) 役割および動作説明
spring.application.name boot_basic アプリケーションの識別名を定義する
server.port 9990 内蔵 Tomcat が使用する HTTP ポート番号を指定する
spring.mvc.view.prefix /WEB-INF/views/ Controller が返す View 名の前に結合されるパス
spring.mvc.view.suffix .jsp Controller が返す View 名の後ろに結合される拡張子

今回学んだこと

  • Controller が返した論理名(例: "aaa")は、application.properties の Prefix と Suffix が自動結合されて /WEB-INF/views/aaa.jsp に変換される
  • /WEB-INF/ ディレクトリ内に JSP を配置することで、直リンクによる直接アクセスを防ぎセキュリティを高めている
  • 設定ファイルは .properties だけでなく .yml も使えるので、プロジェクトの規模に合わせて見やすい形式を選びたい

次は実際の画面側である JSP ファイル(aaa.jsp や abc.jsp)の記述を見ていきたい。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?