Spring xml DI 지시서 작성

구잉·2021년 11월 17일

setter를 통한 값 설정

<?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="exam" class="spring.di.entity.NewIecExam">
		<property name="kor" value="10"></property>
		<property name="eng" value="10"></property>
		<property name="math" value="10"></property>
		<property name="com">
			<value>10</value>
		</property>
	</bean>
	<bean id="console" class="spring.di.ui.InlineExamConsole">
		<property name="exam" ref="exam"/>
		<!-- setExam 호출 -->
	</bean>
</beans>
  1. spring bean을 통해 객체 생성
  • id에 객체 이름, class에 경로 설정
  1. property로 변수에 값 입력 가능(setter)
  • property태그에 value를 합쳐서 줘도 되고 따로 줘도 됨
  • value 대신 ref 형식도 가능

constructor를 통한 값 설정

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
	
	<bean id="exam" class="spring.di.entity.NewIecExam" p:kor="10" p:eng="20" p:math="30" p:com="40">
	
	<!-- <bean id="exam" class="spring.di.entity.NewIecExam">
		<constructor-arg name="kor" type="int" value="10"></constructor-arg>
		<constructor-arg name="eng" type="int" value="20"></constructor-arg>
		<constructor-arg name="math" type="int" value="30"></constructor-arg>
		<constructor-arg name="com" type="int" value="40"></constructor-arg> -->
		
		<!-- <constructor-arg index="0" value="10"></constructor-arg>
		<constructor-arg index="1" value="10"></constructor-arg>
		<constructor-arg index="2" value="10"></constructor-arg>
		<constructor-arg index="3" value="10"></constructor-arg> -->
	
	</bean>
	
	<bean id="console" class="spring.di.ui.InlineExamConsole">
		<property name="exam" ref="exam"/>
		<!-- setExam 호출 -->
	</bean>

</beans>
  1. constructor에 순서마다 index값으로 지정가능
  2. constructor에 변수 이름으로 지정가능
  3. p태그를 이용하여 한줄에 constructor로 지정가능

java파일에서의 연결

ApplicationContext context = 
				new ClassPathXmlApplicationContext("spring/di/setting.xml");
		//ExamConsole console = (ExamConsole) context.getBean("console");
		ExamConsole console = (ExamConsole) context.getBean(ExamConsole.class);
  1. ApplicationContext로 xml을 가져옴
  2. getBean 함수를 통해 연결
    -> 코드를 바꾸지 않고 xml변경을 통해 객체를 변경 가능
profile
시작을 두려워하지말자

0개의 댓글