[TIL]航行9930日目
@Autowired
@Autowiredは、依存性注入の際に使用されるAnnotationであり、依存オブジェクトタイプに対応するbeanを検索および注入するために使用されます.
@Autowiredの使用可能な場所
@Autowiredは、デフォルトでは以下の場所で使用できます.
@Service
public class TestService {
TestRepository testRepository;
@Autowired
public TestService(TestRepository testRepository) {
this.testRepository = testRepository;
}
}
上記のコードでは、TestRepositoryの依存注入を使用できますか?もちろん役に立たない.Autowiredは依存オブジェクトタイプに対応するbeanを検索して注入します.すなわち,TestRepositoryはbeanとして登録されていないため,スプリングはbeanが見つからず依存性を注入できない.
正常に動作するには、@Repositoryまたは@Component Annotationを使用します.
TestRepositoryをbeanに登録すればいいです.
@Repository
public class TestRepository {
....
}
Lombokでは、コンストラクション関数を自動的に作成できます.@NorargConstructor宣言では、パラメータのないデフォルトの作成者が作成され、@AllargConstructor宣言では、すべてのフィールド値がパラメータの作成者として作成されます.最後に、@RequiredArgsConstructorは、finalまたは@NonNullフィールド値のみをパラメータとして受け入れるジェネレータを作成すると宣言します.
Reference
この問題について([TIL]航行9930日目), 我々は、より多くの情報をここで見つけました https://velog.io/@woojinshim103/TIL-항해99-30일차テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol