スプリングbeanをxmlで登録
📖 ✏️
Spring beanをxmlで登録
スプリング容器は、スプリングbeanを様々な形態で登録できるように設計されている.bean登録は主に1)宣言ベースjavaコードを使用する方法と2)xmlファイルを使用する方法を採用する.必要に応じて、独自のプロファイルを作成することもできます.最近xmlはあまり使われていませんが、古いプロジェクトを維持する必要がある場合は、このような状況が頻繁に発生する可能性があります.
1.匿名ベースjavaコード設定方式
シミュレーションを使用したjavaコードの設定方式は、現在最も一般的な方法です.new AnnotationConfigApplicationContext("설정할 클래스 이름".class)
を使用して、設定するクラスをパラメータに入れます.
2.xml設定方式
最近,Spring Bootを用いたアプリケーション開発が主流となり,xmlベースの設定方法は適用されなくなった.しかし、従来のプロジェクトの多くはxmlであるため、xmlを使用するbean登録方法を理解することが望ましい.
またxml方式の利点は,コンパイルを必要とせずにbean設定情報を変更できることであるため,必要に応じて利用できる必要がある.
宣言に基づくjavaコード設定方式はApplicationContext
を実装体とし、xml方式はAnnotationConfigApplicationContext
実装体とする.
2-1. Xmlを使用してbeanを登録する
GenericXmlApplicationContext
の発現体は、ApplicationContext
を用いる.public class XmlAppContext {
@Test
void xmlAppContext() {
ApplicationContext ac = new GenericXmlApplicationContext("AppConfig.xml");
MemberService memberService = ac.getBean("memberService", MemberService.class);
Assertions.assertThat(memberService).isInstanceOf(MemberService.class);
}
}
XMLファイルはresourcesディレクトリに作成する必要があります.
<?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="memberService" class="hello.core.member.MemberServiceImpl">
<constructor-arg name="memberRepository" ref="memberRepository"/>
</bean>
<bean id="memberRepository" class="hello.core.member.MemoryMemberRepository"/>
<bean id="orderService" class="hello.core.order.OrderServiceImpl">
<constructor-arg name="memberRepository" ref="memberRepository"/>
<constructor-arg name="discountPolicy" ref="discountPolicy"/>
</bean>
<bean id="discountPolicy" class="hello.core.discount.RateDiscountPolicy"/>
</beans>
GenericXmlApplicationContext
ベースのxml
スプリングプロファイルはjavaコードのappConfig.xml
プロファイルクラスと比較され、その構造は基本的に類似している.ただ形が少し違うだけです.
Reference
この問題について(スプリングbeanをxmlで登録), 我々は、より多くの情報をここで見つけました
https://velog.io/@woply/xml-방식으로-스프링-Bean-등록하기
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
public class XmlAppContext {
@Test
void xmlAppContext() {
ApplicationContext ac = new GenericXmlApplicationContext("AppConfig.xml");
MemberService memberService = ac.getBean("memberService", MemberService.class);
Assertions.assertThat(memberService).isInstanceOf(MemberService.class);
}
}
<?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="memberService" class="hello.core.member.MemberServiceImpl">
<constructor-arg name="memberRepository" ref="memberRepository"/>
</bean>
<bean id="memberRepository" class="hello.core.member.MemoryMemberRepository"/>
<bean id="orderService" class="hello.core.order.OrderServiceImpl">
<constructor-arg name="memberRepository" ref="memberRepository"/>
<constructor-arg name="discountPolicy" ref="discountPolicy"/>
</bean>
<bean id="discountPolicy" class="hello.core.discount.RateDiscountPolicy"/>
</beans>
Reference
この問題について(スプリングbeanをxmlで登録), 我々は、より多くの情報をここで見つけました https://velog.io/@woply/xml-방식으로-스프링-Bean-등록하기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol