導入
Spring Boot は、Spring フレームワークを使用して実稼働対応アプリケーションの開発を簡素化するフレームワークです。アプリケーションを迅速かつ効率的に構築するのに役立つ一連のツールと規約が提供されます。 Spring Boot を使用すると、最小限の構成でスタンドアロンの実稼働グレードのアプリケーションを簡単に作成できます。
このガイドでは、Spring Boot を使用して単純なユーザー CRUD (作成、読み取り、更新、削除) アプリケーションを作成する手順を説明します。また、さまざまな環境間での一貫性を確保するために、アプリケーションを Docker でコンテナ化します。
前提条件
以下がインストールされていることを確認してください:
- Java JDK 11 以降
- メイブン
- ドッカー
- Git
ステップ 1: 新しい Spring Boot プロジェクトを作成する
プロジェクトを生成する
Spring Initializr を使用して新しい Spring Boot プロジェクトを生成します:
- プロジェクト: Maven プロジェクト
- 言語: Java
- スプリングブート: 3.2.0
- グループ: com.example
- アーティファクト: ユーザークルード
- 依存関係: Spring Web、Spring Data JPA、H2 Database
「生成」をクリックしてプロジェクトをダウンロードし、解凍します。
プロジェクト ディレクトリに移動します
cd user-crud
ステップ 2: ユーザー エンティティを定義する
エンティティクラスの作成
src/main/java/com/example/usercrud 内に User.java という名前の新しい Java クラスを作成します。
package com.example.usercrud; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private String email; // Getters and Setters public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
ステップ 3: ユーザー リポジトリを作成する
リポジトリインターフェイスの作成
src/main/java/com/example/usercrud 内に UserRepository.java という名前の新しい Java インターフェイスを作成します。
package com.example.usercrud; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<user long> { } </user>
ステップ 4: ユーザー コントローラーを作成する
RESTコントローラーを作成する
src/main/java/com/example/usercrud 内に UserController.java という名前の新しい Java クラスを作成します。
package com.example.usercrud; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Optional; @RestController @RequestMapping("/api/users") public class UserController { @Autowired private UserRepository userRepository; @PostMapping public ResponseEntity<user> createUser(@RequestBody User user) { User savedUser = userRepository.save(user); return new ResponseEntity(savedUser, HttpStatus.CREATED); } @GetMapping public List<user> getAllUsers() { return userRepository.findAll(); } @GetMapping("/{id}") public ResponseEntity<user> getUserById(@PathVariable Long id) { Optional<user> user = userRepository.findById(id); return user.map(ResponseEntity::ok).orElseGet(() -> ResponseEntity.notFound().build()); } @PutMapping("/{id}") public ResponseEntity<user> updateUser(@PathVariable Long id, @RequestBody User user) { if (!userRepository.existsById(id)) { return ResponseEntity.notFound().build(); } user.setId(id); User updatedUser = userRepository.save(user); return ResponseEntity.ok(updatedUser); } @DeleteMapping("/{id}") public ResponseEntity<void> deleteUser(@PathVariable Long id) { if (!userRepository.existsById(id)) { return ResponseEntity.notFound().build(); } userRepository.deleteById(id); return ResponseEntity.noContent().build(); } } </void></user></user></user></user></user>
ステップ 5: Dockerfile を作成する
Dockerfileを追加する
次の内容を含む Dockerfile という名前のファイルをプロジェクトのルート ディレクトリに作成します。
# Use a base image with Java 11 FROM openjdk:11-jdk-slim # Set the working directory WORKDIR /app # Copy the jar file from the target directory COPY target/user-crud-0.0.1-SNAPSHOT.jar app.jar # Expose port 8080 EXPOSE 8080 # Run the application ENTRYPOINT ["java", "-jar", "/app/app.jar"]
Docker イメージを構築する
まず、Maven を使用してアプリケーションをパッケージ化します。
./mvnw clean package
次に、Docker イメージをビルドします。
docker build -t user-crud .
ステップ 6: Docker コンテナを実行する
コンテナを実行する
次のコマンドを使用して Docker コンテナを実行します:
docker run -p 8080:8080 user-crud
アプリケーションを検証する
http://localhost:8080/api/users にアクセスして、アプリケーションが Docker コンテナ内で正しく実行されていることを確認します。 CRUD エンドポイントをテストするには、curl や Postman などのツールを使用できます。
結論
Spring Boot を使用して単純なユーザー CRUD アプリケーションを作成し、Docker を使用してコンテナ化し、その動作を確認しました。この設定により、さまざまな環境間でアプリケーションを一貫してデプロイおよび管理できるようになり、追加機能でこの例を拡張したり、より大規模なシステムに統合したりできます。
ご質問がありましたらお気軽にお問い合わせください...ハッピーコーディング!
詳細については、以下を参照してください:
- Spring Boot ドキュメント
- Docker ドキュメント
以上がSpring Boot と Docker を使用したユーザー CRUD アプリケーションの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

javaispopularforsoss-platformdesktopapplicationsduetoits "writeonce、runaynay" philosophy.1)itusesbytecodatiTatrunnanyjvm-adipplatform.2)ライブラリリケンディンガンドジャヴァフククレアティック - ルルクリス

Javaでプラットフォーム固有のコードを作成する理由には、特定のオペレーティングシステム機能へのアクセス、特定のハードウェアとの対話、パフォーマンスの最適化が含まれます。 1)JNAまたはJNIを使用して、Windowsレジストリにアクセスします。 2)JNIを介してLinux固有のハードウェアドライバーと対話します。 3)金属を使用して、JNIを介してMacOSのゲームパフォーマンスを最適化します。それにもかかわらず、プラットフォーム固有のコードを書くことは、コードの移植性に影響を与え、複雑さを高め、パフォーマンスのオーバーヘッドとセキュリティのリスクをもたらす可能性があります。

Javaは、クラウドネイティブアプリケーション、マルチプラットフォームの展開、および言語間の相互運用性を通じて、プラットフォームの独立性をさらに強化します。 1)クラウドネイティブアプリケーションは、GraalvmとQuarkusを使用してスタートアップ速度を向上させます。 2)Javaは、埋め込みデバイス、モバイルデバイス、量子コンピューターに拡張されます。 3)Graalvmを通じて、JavaはPythonやJavaScriptなどの言語とシームレスに統合して、言語間の相互運用性を高めます。

Javaの強力なタイプ化されたシステムは、タイプの安全性、統一タイプの変換、多型を通じてプラットフォームの独立性を保証します。 1)タイプの安全性は、コンパイル時間でタイプチェックを実行して、ランタイムエラーを回避します。 2)統一された型変換ルールは、すべてのプラットフォームで一貫しています。 3)多型とインターフェイスメカニズムにより、コードはさまざまなプラットフォームで一貫して動作します。

JNIはJavaのプラットフォームの独立を破壊します。 1)JNIは特定のプラットフォームにローカルライブラリを必要とします。2)ローカルコードをターゲットプラットフォームにコンパイルおよびリンクする必要があります。3)異なるバージョンのオペレーティングシステムまたはJVMは、異なるローカルライブラリバージョンを必要とする場合があります。

新しいテクノロジーは、両方の脅威をもたらし、Javaのプラットフォームの独立性を高めます。 1)Dockerなどのクラウドコンピューティングとコンテナ化テクノロジーは、Javaのプラットフォームの独立性を強化しますが、さまざまなクラウド環境に適応するために最適化する必要があります。 2)WebAssemblyは、Graalvmを介してJavaコードをコンパイルし、プラットフォームの独立性を拡張しますが、パフォーマンスのために他の言語と競合する必要があります。

JVMの実装が異なると、プラットフォームの独立性が得られますが、パフォーマンスはわずかに異なります。 1。OracleHotspotとOpenJDKJVMは、プラットフォームの独立性で同様に機能しますが、OpenJDKは追加の構成が必要になる場合があります。 2。IBMJ9JVMは、特定のオペレーティングシステムで最適化を実行します。 3. Graalvmは複数の言語をサポートし、追加の構成が必要です。 4。AzulzingJVMには、特定のプラットフォーム調整が必要です。

プラットフォームの独立性により、開発コストが削減され、複数のオペレーティングシステムで同じコードセットを実行することで開発時間を短縮します。具体的には、次のように表示されます。1。開発時間を短縮すると、1セットのコードのみが必要です。 2。メンテナンスコストを削減し、テストプロセスを統合します。 3.展開プロセスを簡素化するための迅速な反復とチームコラボレーション。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック









