Spring依存関係を注入する4つの方法
注入スプリングの依存関係
スプリングは、走査素子によって自動的にbeanを生成し、スプリング容器にこれらのbeanを格納および管理する.
beanを自動的に生成する場合,スプリング内部に依存関係を自動的に注入する4つの方法がある.ちょっとお伺いします.
1.注入構造関数
これは生成者によって依存関係を注入する方法である.
依存関係は不変であるか、必要な依存関係に用いられる.
lombokを使用する場合、@RequiredArgsConstructorでコードを簡略化できます.
これは,修正者(setter)によって依存関係を注入する方法である.
依存関係を選択的に注入したり、変更可能な依存関係に使用したりします.
setterは公開されるので、変更できる人がいるので、いい方法ではありません.
3.現場注入
フィールドに直接注入する方法.
コードは簡潔で使いやすいが、外注できず、テストしにくい.
欠点はDIフレームがないと何もできないことです.
あると知っているから、使わないでください.(テスト時使用OK)
一般的な方法で注入する方法.
普通は使いません.
参考までに使用しないでください.
スプリングは、走査素子によって自動的にbeanを生成し、スプリング容器にこれらのbeanを格納および管理する.
beanを自動的に生成する場合,スプリング内部に依存関係を自動的に注入する4つの方法がある.ちょっとお伺いします.
1.注入構造関数
これは生成者によって依存関係を注入する方法である.
依存関係は不変であるか、必要な依存関係に用いられる.
@Component
public class TestServiceImpl implements TestService{
private final TestRepository testRepository;
private final TestPolicy testPolicy;
@Autowired //생성자가 1개일 경우 생략 가능
public TestServiceImpl(TestRepository testRepository, TestPolicy testPolicy) {
this.testRepository = testRepository;
this.testPolicy = testPolicy;
}
}
コンストラクション関数がある場合は、@Autowiredを省略できます.lombokを使用する場合、@RequiredArgsConstructorでコードを簡略化できます.
@Component
@RequiredArgsConstructor
public class TestServiceImpl implements TestService{
private final TestRepository testRepository;
private final TestPolicy testPolicy;
}
2.注入修正者これは,修正者(setter)によって依存関係を注入する方法である.
依存関係を選択的に注入したり、変更可能な依存関係に使用したりします.
setterは公開されるので、変更できる人がいるので、いい方法ではありません.
@Component
public class TestServiceImpl implements TestService{
private TestRepository testRepository;
private TestPolicy testPolicy;
@Autowired
public void setTestRepository(TestRepository testRepository) {
this.testRepository = testRepository;
}
@Autowired
public void setTestPolicy(TestPolicy testPolicy) {
this.testPolicy = testPolicy;
}
}
スプリングアイテムを起動するときに何も注入する必要がない場合は、'@Autowired(required=false)を指定するだけです.3.現場注入
フィールドに直接注入する方法.
コードは簡潔で使いやすいが、外注できず、テストしにくい.
欠点はDIフレームがないと何もできないことです.
あると知っているから、使わないでください.(テスト時使用OK)
@Component
public class TestServiceImpl implements TestService{
@Autowired
private TestRepository testRepository;
@Autowired
private TestPolicy testPolicy;
}
4.一般的な方法で注入一般的な方法で注入する方法.
普通は使いません.
参考までに使用しないでください.
@Component
public class TestServiceImpl implements TestService{
private TestRepository testRepository;
private TestPolicy testPolicy;
@Autowired
public void init(TestRepository testRepository, TestPolicy testPolicy) {
this.testRepository = testRepository;
this.testPolicy = testPolicy;
}
}
コンテンツソース:https://www.inflearn.com/users/@yhReference
この問題について(Spring依存関係を注入する4つの方法), 我々は、より多くの情報をここで見つけました https://velog.io/@yebali/DI-주입-방법-3가지テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol