騒音の整理

4810 ワード

👀騒音整理(手順実戦1開始)


@PersistenceContext(永続コンテキスト)


永続性コンテキストに加えて、コマンドを参照してください.
「Entityを永続的に保存する環境」
  • 永続コンテキスト.
  • em.persist()は、永続性コンテキストでの永続化(保存)Entityを表します.
  • それがあってこそ、「repository」に「コンテンツを注入する」ことができ、現在は「springBootデータJPA」のため、->@Autowiredと書くこともできる.
  • @Transactional


    ここのブログ.

    📣 Springでは、@Transactionalは「テストケース」では基本的にRollBackです。



    「データベースのステータスまたは実行する必要があるアクションを変更します.」
    メソッド、クラス、インタフェースに追加して使用します.
  • 多くのオプションとプロパティがあります.
    ex)@Transactional(readonly=True)読み取り専用であることを示す
    ->jpaは、クエリーの場所でパフォーマンスが向上します.
    ->でない場合は、@Transactionalを書き込み専用に設定できます.
  • @RequiredArgsConstructor

    
    //(2) 생성자 주입식
    private  MemberRepository memberRepository; //얘는 계속 내비두고
    
        //얘네를 넣어줌 이게 '생성자 인젝션'
        @Autowired
        public MemberService(MemberRepository memberRepository){
            this.memberRepository = memberRepository;
        }
        
        
    //(3) lombok을 이용한
    @RequiredArgsConstructor
    public class MemberService {
        
        private final MemberRepository memberRepository;
        
        }
    
    "@NonNullまたはfinal追加フィールド用にジェネレータのプレゼンテーションを作成します.
  • それがあれば,生成者注入の欠点を補う.
    ->依存性の注入時にジェネレータを作成する必要がなく、簡略化
  • beanにコンストラクション関数がある場合は@Autowiredを省略できます.
  • @RunWith(SpringRunner.class)



    but..Spring Boot JUnit 5から現在@RunWithは不要
  • 書き込みの場合は、@ExtendWith(SpringExtension.class)を使用して拡張実装を指定する必要があります.
  • 📣 ただし、現在SpringExtension.classはSpring Boot|(すべてのテストプロンプト)@SpringBootTestに適用されているため、@ExtendWith
  • は省略可能

    @SpringBootTest


    このブログ.
    統合テストの「Spring Bootテストツール」を提供
  • SpringBoot使用SpringBootTestテストに必要なすべての依存性を提供テスト用に空を作成します.
  • @MockBean定義された空
  • を検索して置換

    @Test(expected=異常.class)



    テストコードが複雑になるため、(try~catch文)が書き込まれます.
  • 異常発生により爆発した子供が(expected = 비교대상.class)の「比較対象」の異常類「発生した異常」と同じであれば、試験に合格する.
  • @NoArgsConstructor(access = AccessLevel.PROTECTED)

    //==주문위해_생성 메서드==//
    //복잡한 '주문생성 메서드'를 응집해놓음
    //...orderItems 는 '자바 가변인자'임
        
        public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems){
            Order order = new Order();
            order.setMember(member);//회원 설정
            order.setDelivery(delivery);//배송지 설정
    
            for (OrderItem orderItem : orderItems){
                order.addOrderItem(orderItem); //주문상품목록에 상품 설정
            }
    
            order.setStatus(OrderStatus.ORDER);//주문상태는 '주문'으로 첫 상태로 강제해놓음
            order.setOrderDate(LocalDateTime.now()); //현재 시간으로
            return order;//order 객체 반환
        }
    
    「オブジェクトのメンテナンスが難しく、setを次々と使用する人もいます.差別のないオブジェクトの作成を確認します」
  • デフォルトジェネレータを生成するためのlombokのプレゼンテーションです.
  • Q.なぜ?JAvaは基本ジェネレータの自動生成に使用すべきですか?
    ->ドメインコンセプトを含むビルダーを個別に作成する必要があるためです.
  • @NotEmpty



    値はnullまたは「」の空の文字列ではありません.
    ->この内容を書き込むフィールドに値を含める必要があります.

    @ValidとBlindingResult


    @Validとともに使用されるクラスのすべてのコメントはValidationです.
  • の前の@ValidBlindingResultが一緒に後ろに書いてあり、結果にエラーが発生した場合はここに表示されます
  • 👀 基本プレゼンテーション


    このブログは、gil.あなたのブログを参照してください.

    @Table(name="エンティティ名")


    エンティティを直感的に認識し、エンティティがどのテーブルにマッピングされるかを示すには、エンティティ名を入力する必要があります.
  • 属性name、Catalog、Schema等
  • @Autowired依存注入


    作成者依存性'@Controllerを注入することで、  @サービス、@Repositoryなど  「springbin」として自動的に登録されます."

    @Entity


    テーブルへのマッピングは、エンティティと呼ばれ、JPAによって管理されます.
  • 属性name
  • finalクラス、enum、interface、internalクラスなどは使用できません
  • @Id , @GeneratedValue


    このブログ.
  • @Id表のPKフィールド
  • を示す
  • @GeneratedValueは、PK(識別子)生成ポリシーを指定するプレゼンテーションである.