Spring Framework(2)

으누·2024년 10월 21일

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>
		<!-- setCost() -->
		<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); // 또 다른 방법으로 빈 가져오기

profile
코딩 일기장

0개의 댓글