この記事は、シアトルコンサルティング株式会社 Advent Calendar 2021の18日目の記事です。
こんにちは、シアトルコンサルティングの小泉です。
##はじめに
今回はJavaBeansについてまとめました。
実務の中でBeansを使用する中でBeansの役割って何なんだろうと疑問に思い調べてまとめてみました。
##ゴール
JavaBeansの役割について理解できるようになる。
JavaBeansとは
JavaBeansとは、Java言語で再利用可能な部品(モジュール)化されたプログラムを作成するための仕様。また、その仕様に則って開発された部品化されたJavaプログラム(略してBeanとも呼ばれる)。※IT用語辞典より
簡単にいうと、データを保存しておくための倉庫のようなものです。
例えば、ユーザーから送られてきた氏名や年齢などの情報を個人ごとにそれぞれ整理して保存しておくための仕組みがJavaBeansです。
JavaBeansの3つの特徴
1:プロパティへのgetter/setterメソッドを持つ
2:引数のないコンストラクタを持つ
3:java.io.Serializableを実装している
サンプルコードを下記に示します。
public class UserBean{
private String name;
private int age;
public UserBean (){};
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
JavaBeansを使うメリット
JavaBeansを使うメリットは「データの意図しない書き換えを防げること」です。
各データ属性はprivateであるため、外部からはアクセスできません。
そのため、必ずインスタンスの生成をしてから、セッターを呼ばなければデータ属性を書き換えられない仕組みです。
formとentityとdtoの違い
データ保管をしようと思いBeanについて調べていたらform、entity、dto、これらの単語もよく聞くと思います。
一見どれも同じ書き方をしていて違いがわからない方もいらっしゃると思います。
それぞれの違いはなに?
結論から言うと、
formとentityとdtoは3つともBean で、使用目的によって名前が分けられています。
Form
・Web上の画面の入力情報/出力方法を保有します。
entity
・DBに登録・更新する値を保有します。
・DBから取得した値を保有します。
dto
・データ交換用のbeanであり、様々な情報から必要な情報だけを集めた値を保有します。
##さいごに
JavaBeansの役割について理解いただけましたでしょうか?
今後も実務の中で気になったことなどがあればまとめていきますのでよろしくお願いいたします。