JAVAでDIを設定する
Java設定DIの使用方法
DIをJavaに設定
主なコメント
Javaコードを使用して、
@Configuration:空の設定メタデータ情報を含むクラスを宣言
@Bean:クラス内の新しい空のオブジェクトを定義する
Java設定とXML関係
メソッド名
property
>または<constructor-arg
>タグを使用して、But Java設定の設定に依存オブジェクトdi-javaサンプルプロジェクトの作成
di-javaパスの構成
Javaコード設定-@Beanメソッドを呼び出して取得
JavaConfig.java
package org.tukorea.di.config;
import org.tukorea.di.persistence.MemberDAO;
import org.tukorea.di.persistence.MemberDAOImpl;
import org.tukorea.di.service.MemberService;
import org.tukorea.di.service.MemberServiceImpl;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration
@Configuration
public class JavaConfig {
@Bean
public MemberDAO memberDAO() {
return new MemberDAOImpl();
}
@Bean(name="service")
public MemberService memberService() {
return new MemberServiceImpl(memberDAO());
}
}
package org.tukorea.di.main;
import org.tukorea.di.config.JavaConfig;
import org.tukorea.di.domain.StudentVO;
import org.tukorea.di.service.MemberService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MemberSampleMain {
private static ApplicationContext ctx = null;
public static void main(String[] args) throws Exception {
System.out.println("안녕하세요 DI-JavaConfig");
ctx = new AnnotationConfigApplicationContext(JavaConfig.class); //자바설정코드 클래스
MemberService memberService = ctx.getBean("service", MemberService.class);
StudentVO vo = new StudentVO();
vo.setId("kanadara");
StudentVO member = memberService.readMember("kanadara");
System.out.println(member);
}
package org.tukorea.di.service;
import org.tukorea.di.domain.StudentVO;
import org.tukorea.di.persistence.MemberDAO;
import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean;
public class MemberServiceImpl implements MemberService, InitializingBean, DisposableBean {
private MemberDAO memberDAO;
.................................................................................................................................
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("Init MemberServiceImple");
}
@Override
public void destroy() throws Exception {
System.out.println("Destroy MemberServiceImple");
}
}
空のオブジェクトのscopeとライフサイクル
空のオブジェクトのスキャン(Scope)
scopeプロパティ設定を使用して
空のオブジェクトのライフサイクル
Reference
この問題について(JAVAでDIを設定する), 我々は、より多くの情報をここで見つけました https://velog.io/@dlwldbs/JAVA를-이용한-DI-설정テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol