Spring特性(1):POJO


📌 1.配置オブジェクトとは?
📎 ポジョって何?
以下のGetterSetterからなる가장 순수한 형태의 기본 클래스.Javaを使用してビジネス・サービスを開発する際にビジネス・ロジックだけでなく、トランザクション、セキュリティなどのロジック(Transaction、Multi Thread)を作成する負担を解消するために、EJB(Enterprise Java Beans)が作成されました.EJBを使用するとUrebellロジックを開発する作業量を減らすことができますが、1つまたは2つの機能を使用するために膨大なEJBsを継承または拡張した場合、単純なサービスであっても、それをより重くしたり、他の機能に置き換えたりするために、コード全体を修正する必要があるという問題が発生します.したがって,JAVAの基本概念をオブジェクト向けに集中し,特定のクラスやライブラリに依存しないPOJO構成を用いてコードを記述すれば,これらの問題を解決できる.따라서 Spring은 POJO 방식을 기반으로 한 웹 프레임워크를 사용하고, IoC와 DI, AOP 등 Spring의 주요 기술을 활용해 POJO 기반의 구성을 이루게 되었다.
👉 POJO 코드 예시
public class User {
    private int id;
    private String name;
    private String email;
    
    public int getId() {
    	return id;
    }
    public String getName() {
    	return name;
    }
    public String getEmail() {
    	return email;
    }
    
    public void setId(int id) {
    	this.id = id;
    }
    public void setName(String name) {
    	this.name = name;
    }
    public void setEmail(String email) {
    	this.email = email;
    }
}
📎 POJO条件
最終的に、POJOは、以下の条件に基づいて、オブジェクト向けの原理に忠実であり、特定の環境や約定に依存せず、必要に応じて재사용として設計できるオブジェクトである.
👉 특정 규약에 종속되지 않아야 한다.ある約束に従属すると,単一の継承制限のため,オブジェクト向けの設計手法を採用することが難しく,他の環境に移行することも困難である.
👉 특정 환경에 종속되지 않아야 한다.特定のビジネスロジックの処理において外部に属するhttpリクエスト、セッション等が存在する場合は、POJO違反とみなす.そうでなければ、他の環境では使いにくく、ビジネスロジックや技術コンテンツを含むWeb情報コードは理解しにくい.
代表的なのは、以下の3つのケースがPOJOではないことです.
  • で定義されたクラスは拡張できません.
  • の事前定義されたインタフェースは実現できません.
  • で定義されたAnnotationは含まれません.
  • 👉 단일 책임 원칙을 지키는 클래스여야 한다.責任とロールの異なるコードは、異なるクラスに分けるべきです.
    📎 POJOの強み
    👉 특정 규약에 종속되지 않아 객체지향 설계를 할 수 있다.👉 특정 환경에 종속되지 않아 테스트하기 좋다.👉 특정 규약에 종속되지 않아 로우레벨 코드와 비즈니스 코드가 분리되어 깔끔한 코드 작성이 가능하다.📎 POJO特性
  • Springは
  • を最も基本的な構成部分として使用する
  • スプリングの対象生成と使用の代表的な方法はxml에 명시の方法と@Componentに登録された2つの方法である.
  • xmlファイルに明記することなく、
  • コンポーネントを介してオブジェクトをコンポーネントスキャンに注入できます.
  • コンポーネント(「名前」)で空の名前(id)を指定できます.
  • コンポーネント(「名前」)を省略した場合は、クラスの前の文字を小文字に変更して名前を指定します.Ex)Product>@Component("製品")Goods>@Component("商品")
  • servelet-context.xmlファイルのの指定されたパスには、コンポーネントをスキャンするには、コンポーネント登録が必要です.
  • @Component 외 @Controller , @Service , @Repository , @Aspect , @Configuration 어노테이션도 컴포넌트 스캔 대상이 된다.
  • 📖 リファレンス
  • https://astrid-dm.tistory.com/449
  • https://www.nowwatersblog.com/springboot/springstudy/POJO
  • https://velog.io/@galaxy/Spring%EC%9D%98-%EA%B8%B0%EB%B3%B8-%ED%8A%B9%EC%A7%95-POJO
  • https://velog.io/@seculoper235/0.-Spring-%EC%8A%A4%ED%94%84%EB%A7%81-%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC%EB%9E%80