Spring의 DI에 대해 ②
이 기사의 목적
Spring의 DI에 대해 ①
계속됩니다.
이 기사의 범위
구성에 대해 주로 다루기
Configuration이란?
Bean 정의 파일
기능
종류
Java 기반Configuration
JavaConfig.java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class HogeConfig {
@Bean
HogeService hogeService() {
return new HogeService():
}
@Bean
AAABean aAABean() {
return new AAABean(hogeService());
}
@Bean(name = "bBean")
BBBBean bBBBean() {
return new bBBBean();
}
}
XML 기반Configuration
xmlConfig.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http;//www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="hogeService" class="jp.co.hogeProgram.HogeService" />
<bean id="aAABean" class="jp.co.hogeProgram.AAABean">
<constructor-arg ref="hogeService"/>
</bean>
<bean id="bBean" class="jp.co.hogeProgram.BBBBean>
<constructor-arg value="aaa"/>
</bean>
</beans>
이상 2개는 각각 Bean의 수만큼 정의를 써야 하기 때문에, 번거롭기 때문에, 다음의 어노테이션 베이스를 조합해 DI를 실시하는 것이 일반적이다
주석 기반Configuration
Bean
Hoge.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class Hoge {
オートワイヤリング
このアノテーションの記述によりFugaServiceをDIコンテナから自動的にBeanを取ってくる
@Autowired
public Hoge(FugaService fuga);
処理を記述
}
Config 클래스 (xml 생략)
이 경우 jp.co.hoge 이하의 클래스를 찾습니다.
AppCongig.java
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("jp.co.hoge")
public class AppConfig {
}
다음 번 예고
Bean의 연결에 대해 할 예정입니다.
Reference
이 문제에 관하여(Spring의 DI에 대해 ②), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/haseesah/items/7ba212646733c0ccdc6f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)