3일차

|

<class 값을 통해 유추해라 ★★>

linked : 중간 삽입/삭제가 수월

Hash : 빠름

Map : key, value

set : 유일

 

// 의존성 주입 실습

-- person.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
	<bean id="personService" class="com.spring.ex01.PersonServiceImpl">
    // bean 태그를 이용해 PersonServiceImpl 객체를 생성한 후 빈id를 personService로 지정.
		<property name="name">
			<value>홍길동</value>
		</property>
        // PersonServiceImpl 객체의 속성 name값을 value태그를 이용해 홍길동으로  초기화.
	</bean>
</beans>

-- PersonService.java

package com.spring.ex01;

public interface PersonService {
	public void sayHello();
}

-- PersonServiceImpl.java

package com.spring.ex01;

public class PersonServiceImpl implements PersonService{
	private String name;
	private int age;
	
    // value 태그의 값을 setter를 이용해 설정.
	public void setName(String name) {
		this.name = name;
	}
	
	public void sayHello() {
		System.out.println("이름 : " + name);
		System.out.println("나이 : " + age);
	}

}

-- PersonTest.java

package com.spring.ex01;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;

public class PersonTest {

	public static void main(String[] args) {
    	// 실행시 person.xml 을 읽어 들여 빈을 생성.
		BeanFactory factory = new XmlBeanFactory(new FileSystemResource("person.xml"));
        // id가 personService인 빈을 가져옴.
		PersonService person = (PersonService)factory.getBean("personService");
        // PersonService person = new PersonServiceImpl();
        // 더이상 자바코드에서 객체를 직접 생성하지 않아도 되므로 주석처리함.
		person.sayHello(); // 생성된 빈을 이용해 name값을 출력.
	
	}

}

------------------------------------------------------------------------
// 회원 기능 이용해 DI 실습하기
-- member.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans>
	// 주입되는 데이터가 기본형이 아닌 참조형인 경우 ref속성으로 설정.
    // 빈을 만들면서 setter 주입방식으로 id가 memberDAO인 빈을 자신의 속성에 주입.
	<bean id="memberService" class="com.spring.ex03.MemberServiceImpl">
		<property name="memberDAO" ref="memberDAO"/>
	</bean>
	<bean id="memberDAO" class="com.spring.ex03.MemberDAOImpl"/>
</beans>

-- MemberServiceImpl.java

package com.spring.ex03;

public class MemberServiceImpl implements MemberService {
	private MemberDAO memberDAO; // 주입되는 빈을 저장할 MemberDAO 타입의 속성을 선언.

	// 설정 파일에서 memberDAO 빈을 생성 후 setter로 속성 memberDAO에 주입.
	public void setMemberDAO(MemberDAO memberDAO) {
		this.memberDAO = memberDAO;
	}

	@Override
	public void listMembers() {
		memberDAO.listMembers();
	}
}

-- MemberDAOImpl.java

package com.spring.ex03;

public class MemberDAOImpl implements MemberDAO {
	@Override
	public void listMembers() {
		System.out.println("listMembers  메서드 호출");
		System.out.println("회원정보를 조회합니다.");
	}
}

-- MemberTest1.java

package com.spring.ex03;

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;

public class MemberTest1 {
	public static void main(String[] args) {
    	// 실행시 member.xml에 설정한 대로 빈을 생성한 후 주입.
		BeanFactory factory = new XmlBeanFactory(new FileSystemResource("member.xml"));
        // id가 memberService인 빈을 가져옴.
		MemberService service = (MemberService) factory.getBean("memberService");
		service.listMembers();
	}
}

------------------------------------------------------------------------
//

------------------------------------------------------------------------
//

------------------------------------------------------------------------
//

'Bitcamp > BITCAMP - Spring FW' 카테고리의 다른 글

7일차  (0) 2019.10.15
6일차  (0) 2019.10.11
5일차  (0) 2019.10.10
4일차  (0) 2019.10.08
1일차  (0) 2019.09.30
And