【プログラミング】【javaSpringBootの特徴と使い方 - j-komatsu/myCheatSheet GitHub Wiki
Spring Bootの特徴と使い方
目的
Spring Bootを利用して効率的にアプリケーションを開発・運用するための特徴、使い方、環境設定、主要アノテーションについて整理します。
特徴
特徴 | 説明 |
---|---|
簡単なセットアップ | 初期設定が最小限で済み、Spring Initializrを利用して簡単にプロジェクトを作成可能。 |
組み込みWebサーバー | Tomcat、Jetty、Undertowが組み込まれ、WARファイルを必要とせずJARファイルとして実行可能。 |
自動設定(Auto Configuration) | 開発者が手動で設定する必要のある多くの部分を自動で設定。 |
モジュール化された構成 | スターターモジュール(例: spring-boot-starter-web)を使用して必要な機能を簡単に追加可能。 |
プロダクション対応 | Actuatorでメトリクスやヘルスチェックを提供。ログやエラーハンドリングも改善。 |
DevToolsの提供 | ホットリロードや自動リスタート機能で開発効率を向上。 |
使い方
-
Spring Initializrでプロジェクトを作成
- Spring Initializrにアクセスし、必要な依存関係を選択。
-
アプリケーションの実行
@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
-
プロパティの設定
application.properties
またはapplication.yml
で環境設定を行う。
-
実行コマンド
mvn spring-boot:run
環境設定
必要なツール | 説明 |
---|---|
JDK | Java Development Kit 8以上を使用。 |
Maven/Gradle | ビルドツールとしてMavenまたはGradleを使用。 |
IDE | IntelliJ IDEAやEclipseを推奨。 |
データベース | MySQLやPostgreSQLなどを利用可能。 |
主要アノテーション
アノテーション | 説明 |
---|---|
@SpringBootApplication | Spring Bootアプリケーションのエントリーポイントを指定。 |
@RestController | RESTfulなWebサービスを実装するクラスに付与。 |
@RequestMapping | URLとメソッドをマッピング。 |
@GetMapping | HTTP GETリクエストを処理。 |
@PostMapping | HTTP POSTリクエストを処理。 |
@PutMapping | HTTP PUTリクエストを処理。 |
@DeleteMapping | HTTP DELETEリクエストを処理。 |
@PathVariable | URLパスの値を取得。 |
@RequestParam | クエリパラメータを取得。 |
@RequestBody | HTTPリクエストのボディをオブジェクトにマッピング。 |
@ResponseBody | メソッドの戻り値をHTTPレスポンスボディに書き込む。 |
@Component | Springのコンポーネントとして管理されるクラスに付与。 |
@Service | サービス層を示すアノテーション。 |
@Repository | データアクセス層を示すアノテーション。 |
@Autowired | 依存性注入を行う。 |
@Transactional | メソッドまたはクラスにトランザクション管理を適用。 |
@Configuration | 設定クラスとして使用。 |
@Bean | メソッドがSpringコンテナに管理されるBeanを生成することを示す。 |
@EnableAutoConfiguration | Spring Bootの自動設定を有効にする。 |
@ConditionalOnProperty | プロパティの条件に基づいてBeanを構成。 |
@Value | プロパティ値を注入するために使用。 |
@Async | 非同期処理を有効にする。 |
@Scheduled | タスクのスケジュール実行を定義。 |
@Cacheable | キャッシュ可能なメソッドを指定。 |
@RestClientTest | RESTクライアントをテストするためのアノテーション。 |
@EnableScheduling | スケジューリング機能を有効にする。 |
@EnableCaching | キャッシュ機能を有効にする。 |