interface 생성
public interface MessageBean {
public void sayHello();
public void sayHello(String a,int b);
}
Class 생성 implements MessageBean(override)
public class MessageBeanImpl implements MessageBean { // 클래스 정의 및 인터페이스 구현
private String fruit; // 과일 이름을 저장하는 변수
private int cost; // 과일 가격을 저장하는 변수
public MessageBeanImpl() {
super();
}
// 매개변수가 있는 생성자
public MessageBeanImpl(String fruit) {
super(); // 부모 클래스의 생성자를 호출
this.fruit = fruit;
System.out.println("- MessageBeanImpl(String) - ");
}
public void setFruit(String fruit) {
this.fruit = fruit;
}
public void setCost(int cost) {
this.cost = cost;
}
// 인터페이스 메서드 오버로딩: 매개변수로 받은 문자열과 정수 출력
@Override
public void sayHello() {
System.out.println(fruit +"\t" + cost);
}
@Override
public void sayHello(String a, int b) {
System.out.println(a + "\t" + b); // 매개변수로 받은 문자열과 정수를 출력
}
}
bean.xml
<bean id="messageBean" class="com.di.ex01.MessageBeanImpl">
<constructor-arg>
<value>banana</value>
</constructor-arg>
<property name="cost" value="3000"></property>
</bean>
</beans
TestMain 출력
public class TestMain {
public static void main(String[] args) {
GenericXmlApplicationContext context =
new GenericXmlApplicationContext("com/di/ex01/bean.xml"); // XML 파일로부터 스프링 컨텍스트 생성
MessageBean bean =(MessageBean)context.getBean("messageBean"); // 빈 가져오기
bean.sayHello();
context.close();
}
}
순서 DTO class(생성) -> interface(생성) -> IMPL(implements class) 생성 -> XML(생성및 선언)-> main 페이지에서 출력하기
DTO class페이지에서 객체를 생성하고
public class UserDTO {
private String userName;
public UserDTO() {
super();
// TODO Auto-generated constructor stub
}
public UserDTO(String userName) {
super();
this.userName = userName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
인터페이스 dto 가져옵니다
public interface UserService {
public void add(UserDTO dto);
}
class implements 하고 메서드 선언
public class UserServiceImpl implements UserService {
public UserServiceImpl() {}
@Override
public void add(UserDTO dto) {
// TODO Auto-generated method stub
System.out.println("이름 : " + dto.getUserName());
System.out.println("- add(UserDTO) -");
}
}
XML 파일에서 bean 경로 설정
<bean id="userService" class="com.di.ex03.UserServiceImpl"></bean>
main 에서 출력 메서드 구연하기
public class TestMain3 {
public static void main(String[] args) {
GenericXmlApplicationContext context = new GenericXmlApplicationContext("com/di/ex03/applicationContext.xml");
UserDTO man = new UserDTO("man");
UserService userA = (UserService)context.getBean("userService");
userA.add(man);
UserService userB = context.getBean("userService", UserService.class);
System.out.println("userB : " + userB);
context.close();
}
}
GenericXmlApplicationContext : XML 파일로부터 스프링 컨텍스트 생성
UserService userA = (UserService)context.getBean("userService"); // 빈 가져오기
userA.add(man); // add 메서드 호출
UserService userB = context.getBean("userService", UserService.class); // 또 다른 방법으로 빈 가져오기