ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
概要
.properties は、Java で長年使われてきたキー=値形式の設定ファイルである。標準ライブラリ java.util.Properties クラスがそのまま読み書きできる形式で、Java の世界では「アプリの設定」「国際化メッセージ」「ライブラリのデフォルト挙動」など、ありとあらゆる場面で目にする。拡張子は .properties。形式自体は極めて単純で、特別なパーサを要しないテキストファイルである。
Spring / Spring Boot を触ったことのある開発者は application.properties という名前を必ず目にしたことがあるはずで、これがまさに同形式のファイル。データソースの接続情報、ログレベル、ポート番号、機能フラグなど、アプリの起動時パラメータを宣言する用途で使われる。Log4j や JBoss 等、Java 系ミドルウェアの設定にも採用例が多い。
内部構造・構文
形式はシンプルで、1 行 1 エントリ。key と value を =、:、または空白文字(スペース/タブ)で区切る。key 内には区切り文字を入れたい場合 \\ でエスケープする。
# これはコメント
! これもコメント
# 基本: key=value
app.name=My Application
app.version=1.2.3
# コロン区切りも可
server.port: 8080
# 空白区切りも可(推奨はしない)
db.url jdbc:mysql://localhost:3306/mydb
# 値の継続: 行末に \
log.message=これは長い長い長い長い長い長い長い長い\
メッセージです。
# 日本語はユニコードエスケープ (旧来の方法)
greeting=こんにちは
# Spring Boot 風のドット区切りで疑似階層を表現
spring.datasource.url=jdbc:postgresql://localhost/mydb
spring.datasource.username=admin
spring.datasource.password=secret
spring.jpa.hibernate.ddl-auto=update
コメントは行頭の # または ! から行末まで。空行は無視される。= や : の前後の空白は読み飛ばされるため、整列のためにスペースを入れても問題ない。
注意したいのがエンコーディングで、伝統的に .properties は ISO-8859-1(Latin-1)として解釈される。日本語を直接書き込んだ古いプロジェクトでは、文字化けを防ぐために JDK 同梱の native2ascii ツールで あ 形式のユニコードエスケープに変換するのが定番だった。Java 9 以降は Properties.load(Reader) 経由で UTF-8 として直接読めるようになり、ビルドツール (Maven/Gradle) も自動で UTF-8 として扱えるため、現代のプロジェクトでは日本語をそのまま書いて UTF-8 で保存するケースが増えている。
主な用途
- アプリケーション設定 — Spring Boot の
application.properties、Tomcat のcatalina.properties等 - 国際化 (i18n) メッセージ辞書 —
messages.properties(デフォルト)、messages_ja.properties(日本語)、messages_en_US.properties(米英語)をResourceBundleで切り替え - ライブラリのデフォルト値 — Logback / Log4j のフォーマット指定、Hibernate の方言指定など
- 環境差分の管理 —
application-dev.properties/application-prod.propertiesのように環境別にファイルを分け、Spring Profile で切替 - ビルドツール — Gradle の
gradle.propertiesでビルド時プロパティを定義
関連形式との比較
| 形式 | 主な舞台 | 階層 | 型 | コメント |
|---|---|---|---|---|
| .properties | Java | ドット区切りで疑似 | 文字列のみ | # / ! |
| .yml / .yaml | Java / Ruby / DevOps | インデントで自然に階層 | 文字列 / 数値 / 真偽値 / リスト | # |
| .json | 言語横断、API | 波括弧でネスト | 4 種類のスカラー + 配列 + オブジェクト | 不可 |
| .toml | Rust 等の設定 | セクション + ドット | 豊富(日時含む) | # |
| .ini | 古典的設定 | セクション [name] | 文字列 | ; / # |
Spring Boot は application.properties と application.yml のどちらでも読めるが、階層を持つ複雑な設定は YAML、フラットでシンプルな設定は properties、と使い分けるチームが多い。
編集・パーサ・ツール
- Java 標準 —
java.util.Properties。load(InputStream)/load(Reader)/store()でロード・保存 - Spring —
@Value("${app.name}")や@ConfigurationPropertiesで型安全に注入 - エディタ — IntelliJ IDEA / Eclipse は properties ファイルに専用ハイライト・補完を持ち、Spring プロジェクトでは設定キーの補完まで効く
- 変換ツール — properties ↔ YAML 変換ツール(Spring Boot 公式に Properties to YAML Converter あり)
- i18n —
ResourceBundle.getBundle("messages", Locale.JAPAN)で対応するmessages_ja.propertiesを読む
注意点・落とし穴
- 文字コード — 旧来の ISO-8859-1 で読まれると、日本語が文字化けする。プロジェクトで使う JDK バージョンとビルドツールの設定を確認し、UTF-8 統一を明示する
- バックスラッシュ — Windows のパス
C:\app\configを書くときは\\でエスケープする必要がある (C:\\app\\config) - 値の継続行 — 行末の
\は次行と連結するため、Windows パスをそのまま書くと意図しない継続が起こる - 階層構造の表現が苦しい — ドット区切りで疑似階層を表現するが、配列を含む構造は
list[0]/list[1]のような苦しい書き方になる - 機微情報の平文管理 — DB パスワードや API キーを直書きすると流出リスク。環境変数注入や Vault / Spring Cloud Config / Secrets Manager との連携を検討
- 順序不定 —
Propertiesは HashMap ベースで、保存・列挙時の順序が保証されない。順序が必要ならLinkedProperties等を自前で用意
関連リンク
- Web・データ・設定(親カテゴリ)
- ファイル拡張子とは
- YAML(.yml / .yaml) — Spring Boot で properties の代替として使われる
- TOML(.toml) — 同じ「設定ファイル」目的の現代的フォーマット
- .env — 環境変数によるシークレット管理
- INI(.ini) — .properties のルーツに近い古典的フォーマット
- Application.properties の環境依存設定の分割方法
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- HTML(.html / .htm)
- CSS(.css)
- JSON(.json)
- XML(.xml)
- YAML(.yaml / .yml)
- TOML(.toml)
- env(.env)
- INI(.ini)
- properties(.properties)
- conf(.conf)
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?