본문 바로가기

기존카테고리/Spring_basic1

DI - 프로퍼티(property) 방식



MybatisDao.java


package com.test.diEx04;


public class MyBatisDao {

public MyBatisDao() {};

public void insertDB(){

System.out.println("insert DB 로직");

}

public void updateDB(){

System.out.println("update 로직");

}

}



MyBatisService.java

package com.test.diEx04;

public class MyBatisService {
private MyBatisDao myBatisDao;
public void setMyBatisDao(MyBatisDao myBatisDao){
this.myBatisDao = myBatisDao;
}
public void myBatisTest(){
System.out.println("======================");
myBatisDao.insertDB();
myBatisDao.updateDB();
System.out.println("======================");
}
}

Main.java

package com.test.diEx04;

import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;

public class Main {

public static void main(String[] args) {
AbstractApplicationContext ctx = new GenericXmlApplicationContext("classpath:myBatis.xml");
MyBatisService service = ctx.getBean("service",MyBatisService.class);
service.myBatisTest();
ctx.close();
}
}


myBatis.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"
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="myBatis" class="com.test.diEx04.MyBatisDao"></bean>
<bean id="service" class="com.test.diEx04.MyBatisService" p:myBatisDao-ref="myBatis">
   <!-- setXXXXX() set을 제외한 XXXXX를 프로퍼티의 name으로 사용한다.
     해당 클래스의 setMyBatisDao()를 호출하는 것이다.
     이러한 방식을 프로퍼티 설정방식이라고 한다.
     -->
<!--xml의 네임 스페이스 방식을 이용하면 property 태그를 사용하지 않는다.
"p:프로퍼티이름" 또는 "p:프로퍼티이름-ref='...'" 속성을 사용한다.
<property name="myBatisDao" ref="myBatis"/>
 -->
</bean>
</beans>