ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
classpath: とは
classpath: は Spring Framework が提供するリソース指定の識別子です。プロジェクトの src/main/resources/ 以下にあるファイルを示します。ビルド後は jar / war 内部に含まれるため、配布した後でもアプリ内から読み込めます。
プロジェクト構造
your-project/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/example/App.java
│ │ └── resources/ ← ★ classpath: が指す場所
│ │ ├── application.properties
│ │ ├── jdbc.properties
│ │ ├── mybatis-config.xml
│ │ └── data/
│ │ └── master.csv
│ └── test/
│ └── resources/ ← テスト時の classpath: もここを含む
├── pom.xml
└── target/
└── classes/ ← ビルド後はここに resources がコピーされる
file: との違い
| プレフィックス | 指す場所 | 用途 |
|---|---|---|
classpath: | jar / war 内部(src/main/resources) | 定数・設定・テンプレート等、配布物に含めるファイル |
classpath*: | クラスパス全体(複数 jar を横断) | プラグイン的に複数モジュールの設定を統合 |
file: | OS のファイルシステム(絶対 / 相対パス) | 外部設定ファイル(環境ごとに変える設定など) |
http: / https: | リモート URL | 稀に外部リソースの読み込み |
| プレフィックスなし | 環境に依存(通常 file:) | 非推奨。明示すべき |
使用例 1: プロパティファイル読み込み
@Configuration
@PropertySource("classpath:/jdbc.properties")
public class DbConfig {
@Value("${db.url}")
private String dbUrl;
@Value("${db.user}")
private String dbUser;
}
Spring Boot の application.properties は明示的に classpath: を書かなくても自動で読み込まれます。追加のプロパティを読みたいときに使います。
使用例 2: ResourceLoader で読み込み
@Service
public class MasterDataService {
@Autowired
private ResourceLoader resourceLoader;
public List readMasterCsv() throws IOException {
Resource resource = resourceLoader.getResource("classpath:data/master.csv");
try (BufferedReader br = new BufferedReader(
new InputStreamReader(resource.getInputStream(), StandardCharsets.UTF_8))) {
return br.lines().collect(Collectors.toList());
}
}
}
使用例 3: テンプレート/XML 読み込み
classpath* の使い方(複数 jar 横断)
プラグイン的に複数 jar から同名のリソースを集めたい場合に classpath*: を使います:
// 全 jar の META-INF/spring.factories を集める例
Resource[] resources = applicationContext.getResources("classpath*:META-INF/spring.factories");
// XML 設定を複数モジュールから集める
@ImportResource("classpath*:META-INF/spring/*-context.xml")
jar 化後の注意点
classpath: リソースは jar 内部にあるため、通常の File オブジェクトとして開けません:
// ❌ NG: jar 内部のリソースは File として扱えない
Resource resource = resourceLoader.getResource("classpath:data/master.csv");
File file = resource.getFile(); // FileNotFoundException
// ✅ OK: InputStream で読む
InputStream is = resource.getInputStream();
// ✅ OK: 一時ファイルにコピーする
File tmp = Files.createTempFile("master", ".csv").toFile();
Files.copy(is, tmp.toPath(), StandardCopyOption.REPLACE_EXISTING);
環境別の設定切り替え
本番では file: で外部設定を読みたいケース。両方をフォールバック構成にできます:
@PropertySource(value = "classpath:application-default.properties")
@PropertySource(value = "file:${CONFIG_DIR}/application.properties", ignoreResourceNotFound = true)
public class AppConfig {}
環境変数 CONFIG_DIR に本番設定ディレクトリを指定。ファイルが無ければ classpath 内部設定だけが使われる、というフォールバック。
よくあるハマりどころ
- "classpath:foo.txt" vs "classpath:/foo.txt": 先頭の
/は推奨だが省略可能。意味は同じ - jar 内部で File として開こうとして失敗: 必ず
InputStreamで読む - テスト時のリソースが本番に混入:
src/test/resourcesのファイルは jar に含まれない(テスト時のみ classpath) - パッケージング後にリソースが見つからない:
pom.xmlの設定を確認 / Maven 標準なら設定不要 - Windows でパス区切り: classpath では
/統一(\は使わない)
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- インストール(eclipseプラグイン)
- クイックスタート
- プロジェクトの作成
- Spring Bootプロジェクトの作成
- Spring Bootプロジェクトの実行
- Spring BootでHello World!
- アノテーション一覧
- DB接続設定からエンティティおよびリポジトリの作成、値の取得まで(JPA編)
- DB接続設定や値の取得(JdbcTemplate編)
- ビューから値をモデルに格納しコントローラーで受け取る方法
- コントローラーにてモデルに値を格納してビューに渡す方法
- テンプレートエンジン
- ModelとModelAndViewの違い
- AOPの使用方法
- classpath: 内部ファイルの読み込み
- file: 外部ファイルの読み込み
- CSVファイルアップロード方法(Ajax)
- CSVファイルダウンロード方法(Ajax)
- Spring Bootプロジェクトのビルドと本番環境へのデプロイ方法(内部tomcat使用)
- Application.propertiesの環境依存設定の分割方法
- JPAにおけるEntityManagerの取得方法
- JPAにおけるjava.sql.Connectionの取得方法
- エラー一覧
- jarの引数を受け取る方法
- Spring BootでGmailからメール送信
- 複数のDBに接続する設定(Spring Boot & JPA編)
- ポート番号の変更
- Basic認証の実装と特定のURLに限定する方法
- Spring SecurityのBasic認証の無効化
- 独自のエラーページを定義する方法
- プロパティファイルの値やjar実行時の引数を取得する方法
人気ページ
- 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アノテーションとは
最近更新/作成されたページ
- Laravel キャッシュクリア完全ガイド(cache:clear / config:clear / 2026-05-18 07:42:07
- プロジェクトの作成と削除 2026-05-18 07:42:07
- インストール直後にNetbeansが反応しない 2026-05-18 07:42:07
- 動画やチャンネルの検索 2026-05-18 07:42:07
- APIキー取得方法 2026-05-18 07:42:07
- チャンネル情報の取得 2026-05-18 07:42:07
- API 入門 — Web API(REST / GraphQL / gRPC / 2026-05-18 07:42:07
- インストール(eclipseプラグイン) 2026-05-18 07:42:07
- Laravel「Dotenv values containing spaces must be surrounded 2026-05-18 07:42:07
- エラー一覧 2026-05-18 07:42:07
- curl: (51) SSL: certificate subject name '~' does not match 2026-05-18 07:42:07
- インストール方法(Windows版) 2026-05-18 07:42:07
- JSONから配列に変換 2026-05-18 07:42:07
- 処理を一定時間待つ 2026-05-18 07:42:07
- A non well formed numeric value encountered 2026-05-18 07:42:07
コメントを削除してもよろしいでしょうか?