[SpringBoot&JPA]メンバードメイン開発
5110 ワード
[1]会員ライブラリ開発
option + command + N : Inline
📌 sqlとjpqlの違い
機能
save()
findOne()
:ワンポイントクエリfindAll()
:クエリーリストfindByName()
ぎじゅつ
@Repository
:スプリング空孔として登録し、JPA異常をスプリングベース異常@PersistenceContext
:エンティティーマネージャ@PersistenceUnit
:エンティティーマネージャファクトリ注入(emあり、ほとんど使わない)[2]開発会員サービス
👩🏻💻 コメント説明しましたが、ググググを見たほうがいいです。
ぎじゅつ
@Service
@Transactional
:トランザクション、永続性コンテキスト-readOnly=true:データを変更しない読み取り専用メソッド.永続性コンテキストをリフレッシュしないことで、パフォーマンスを少し向上
-データベースドライバがサポートされている場合、データベースのパフォーマンスは向上します
@Autowired
:共通コンストラクション関数Injection.コンストラクション関数を1つでスキップできます.機能
join()
findMembers()
findOne()
setter注入方法
// MemberService.java
private final MemberRepository memberRepository;
// setter 인젝션(필드에 바로 주입하는 것이 아니라 setter를 통해 주입)
@Autowired
public void setMemberRepository(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
オブジェクトの作成方法(setterではなく推奨)
// MemberService.java
private final MemberRepository memberRepository;
// 생성자 인젝션 방법. 스프링이 뜰 때 생성자에서 인젝션 해줌(이후 변경될 위험이 사라짐)
// 생성자가 지금처럼 딱 하나만 있는 경우에는 스프링이 자동으로 인젝션 해줘서 어노테이션 생략해도 됨
@Autowired
public MemberService(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
@Autowired
を省略できます.@RequiredArgsConstructorメソッド(最も簡単な方法、講師優先)
@RequiredArgsConstructor // final이 있는 필드만 가지고 생성자를 만들어줌
public class MemberService {
[3]会員機能のテスト
command+shift+T:テストケースの作成
persist()を実行してもinsertクエリはデータベースに送信されません.
em.flush();
:永続性コンテキストで発生した変更をデータベースに反映ぎじゅつ
@RunWith(SpringRunner.class)
:集積ばね試験@SpringBootTest
:スプリングを起動してテストします(動作するには@Autowired
が必要です)@Transactional
:テストサポートを繰り返します.テストを実行するたびにトランザクションが開始され、テストが終了するとトランザクションが強制的にロールバックされます(このアクションはテストケースでのみ使用されます)機能
domainにはrepositoryディレクトリとサービスディレクトリが含まれており、テストケースは常に失敗します.
テストケースの設定
テストはキャビネットが隔離された環境で実行し、完了したらデータの初期化を行うことが望ましい.
この点では、メモリDBを使用するのが理想的です.
また、通常のテストケースで使用されるスプリング環境とは異なり、アプリケーションを実行する環境は通常異なるので、異なるプロファイルを使用することが望ましい.
test/resourcesファイル/アプリケーションを作成します.コピーyml
また,アノテーション処理も正常に動作するのは,何の条件もなければメモリモードで自動的に動作するため,正常に動作するためである.
driver-class
は、現在登録されているライブラリを表示および参照し、ddl-auto
およびcreate-drop
モードで実行します.このため、データソースやJPAの追加設定は不要です.
Reference
この問題について([SpringBoot&JPA]メンバードメイン開発), 我々は、より多くの情報をここで見つけました https://velog.io/@dbsrud11/SpringBootJPA-회원-도메인-개발テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol