SpringBootの基本的なアノテーション | ベトナムオフショア開発 【HACHINET SOFTWARE】
プログラミングのためのSpring Framework、特に Spring Boot、を使用するプロセスでは注釈(アノテーション)を見たことがあると思います。 これは、Javaソースコードのデータ情報を提供するためによく使用されます。 この記事では、最も一般的なアノテーションのいくつかを使用する方法を説明し、ご紹介させていただきたいと思います。
2021年07月15日
プログラミングのためのSpring Framework、特に Spring Boot、を使用するプロセスでは注釈(アノテーション)を見たことがあると思います。 これは、Javaソースコードのデータ情報を提供するためによく使用されます。 この記事では、最も一般的なアノテーションのいくつかを使用する方法を説明し、ご紹介させていただきたいと思います。
1. はじめに
プログラミングのためのSpring Framework、特に Spring Boot、を使用するプロセスでは注釈(アノテーション)を見たことがあると思います。
これは、Javaソースコードのデータ情報を提供するためによく使用されます。
この記事では、最も一般的なアノテーションのいくつかを使用する方法を説明し、ご紹介させていただきたいと思います。
2. SpringBootのアノテーションについて必要な知識
2.1 Dependency Injection (DI)
これはデザインパターンであり、オブジェクト間の依存関係を減らして、後でコードを簡単に変更または拡張できるようにするコードの方法です。 オブジェクトは抽象クラスに依存する必要があり、それらの詳細なインスタンスはプログラムの実行時に注入されます。
2.2 Inversion of Control (IoC)
ただし、依存関係が多い(> 10)場合は、これらの依存関係に対して注入する必要があり、非常に時間がかかります。
数十の依存関係を注入する必要があるクラスを想像すると、非常に時間がかかります。
・ 通常の方法でオブジェクトを初期化する代わりに、制御の方向を逆にして、Springにオ
・ ブジェクトを作成させ、オブジェクトのメモリを管理します。「リバースコントロールコントロール」
・Spring Containerは、すべてのBeanが格納される場所です。
3. 基本的なアノテーション
3.1 @Autowire
Spring Containerによって生成されたBeanを@Autowireで宣言されたクラスに自動的に埋め込みます。「依存性注入メカニズムによる」Springが実行を開始すると、アノテーションを使用してBeanを作成するクラスをスキャンするメカニズムが実行されます。同時に、それらのBeanに@Autowire宣言があるかどうかを検索し、対応するBeanを検索してそのBeanに注入します。
以下の3例で@Autowireを使用します。
//Properties
@Service
public class UserService {
@Autowired
UserRepository userRepository;
@Autowired
FacebookUtil facebookUtil;
}
//Setter
@Service
public class User {
Private String name;
@Autowire
void setName(String name) {
this.name = name;
}
}
//Contructor
@Service
public class User {
private long id;
private String name;
@Autowire
void user(long id, String name) {
this.id = id;
this.name = name;
}
}
3.2 @Configuration
@Configurationを使用して宣言されたクラスが、そのクラス内の1つ以上の@Beanメソッドを宣言することを示すために使用されます。
通常、プロジェクト内の構成Beanはこれらの構成クラスに配置します。 たとえば、Elasticsearch、Thymeleaf、多言語などを構成します。
3.3 @Bean
メソッドを強調表示すると、そのメソッドはBeanを生成し、Springコンテナによって管理されることをSpringに伝えます。
@ Beanアノテーションを使用するすべてのメソッドは、Configurationクラスに含まれている必要があります。
@Configuration
public class WebDriverConfig {
@Bean
public WebDriver Chrome() {
System.setProperty("webdriver.chrome.driver",
"/Downloads/chromedriver_linux64/chromedriver");
return new ChromeDriver();
}
}
3.4 @ComponentScan
このアノテーションを使用して、Springコンテナに次のように伝えます。「プロジェクト内のどのパッケージがアノテーションをスキャンしてBeanを作成するかを知っている必要があります」。
@Configuration
@ComponentScan(basePackages = "minhchuan.spring ")
public class SpringComponentDemo {
// ...
}
3.5 @Component
クラスがこのアノテーションを使用する場合は
「Beanとして作成され、それを必要とするすべてのクラスに注入されます」。
- クラスが@Componentを使用しない場合、クラスを@Autowireすることはできません。
- インジェクションのクラスを定義する場合は、Springが認識できるように、このアノテーションを使用してクラスにマークを付ける必要があります。
3.6 @Service
これは@Componentの特別なアノテーションです。 ビジネス、ロジックを処理するために使用されます。
@Service
public class UserService {
@Autowired
UserRepository userRepository;
@Autowired
FacebookUtil facebookUtil;
}
}
3.7 @Repository
- これも@Componentの特別なアノテーションです。 データベースを操作するために使用されます。
- Jpaは、基本的な選択、更新、...機能を提供します。 追加のクエリ作成を適用できます。
- 共通インターフェース:CrudRepository、JpaRepository、MongoRepositor、...
@Repository
public interface UserRepository extends JpaRepository <User, Integer> {
//Query Creation
}
3.8 @Scope
これは、SpringContainerの管理下で生成および破棄されるBeanのスコープです。 使用されているスコープとそのカスタマイズを使用してBeanが生成された場合:
- シングルトン Beanが生成されたときのデフォルトのスコープになります。 つまり、「Beanは一度だけ作成され、コンテナで使用されます。 コンテナにはBeanが1つだけ存在します」。
つまり、一度にコンテナが特定のBeanのみをロードすることを意味します。
- プロトタイプ:シングルトンとは対照的に、多くのBeanが必要なので、このスコープを使用します。
- リクエスト:BeanはユーザーのHTTPリクエストを通じて生成されます。 Webアプリケーションでのみ使用されます。
- セッション:BeanはHTTPセッションを介して生成されます。
3.9 @ PropertySourceと@Value
@PropertySourceを使用して、システム構成プロパティファイルの場所をSpringに通知します。
また、@ Valueを使用して、プロパティファイルの値を取得します。
@Configuration
@Property
Source("classpath:application.properties")
public class
MongoDBConfiguration {
@Value("${mongodb.url}") private String url;
@Value("${mongodb.db}")
private String name;
}
3.10 @Valid
データが正しいかどうかを確認するために使用されます。
@Entity public class User {
@Id
@GeneratedValue private Long id;
@NotEmpty
(message = "Please provide a name") private String name;
@NotEmpty(message = "Please provide a className")
private String className; //... }
@RestController public class UserController {
@PostMapping("/users") Book newBook(
Valid @RequestBody User user) {
//...
}}
この場合、ユーザーオブジェクトのプロパティ(name、className)がnullの場合、エラーが発生します。
3.11 @ReponseBody
コントローラのAPIが、ビューページをレンダリングするのではなく、JsonObjectオブジェクトをクライアントに返すことをユーザーに通知します。
4. まとめ
最近、Spring Bootはアノテーションを多用しており、各アノテーションには特定の機能があります。 アノテーションには@Ten_annotationが短いですが、魔法の機能があります。これらのアノテーションは、基本レベルおよびエンタープライズレベルのSpringブートアプリケーションを作成する上で重要な役割を果たします。
オフショア開発をご検討されている方々はぜひ一度ご相談ください。
※以下通り弊社の連絡先
アカウントマネージャー: クアン(日本語・英語対応可)
電話番号: (+84)2462 900 388
お電話でのご相談/お申し込み等、お気軽にご連絡くださいませ。
- オフショア開発
- エンジニア人材派遣
- ラボ開発
- ソフトウェアテスト
電話番号: (+84)2462 900 388
メール: contact@hachinet.com
お電話でのご相談/お申し込み等、お気軽にご連絡くださいませ。
無料見積もりはこちらから
Tags
ご質問がある場合、またはハチネットに協力する場合
こちらに情報を残してください。折り返しご連絡いたします。
関連記事
ハノイで「ベトナム・島根県IT企業交流会 」が開催された
2024年10月29日、Hachinet Softwareはハノイ市バーディン区のハノイ大宇ホテルで開催された「ベトナム・島根県IT企業交流会」に参加しました。