스프링(3번째)

서울IT코드정리 /kyChoi·2021년 11월 8일
0

스프링

목록 보기
5/17
package com.javalec.ex;

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

public class MainClass {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String configLocation = "classpath:applicationCTX.xml";
		AbstractApplicationContext ctx = new GenericXmlApplicationContext(configLocation);
		StudentInfo studentInfo = ctx.getBean("studentInfo",StudentInfo.class);
		studentInfo.getStudentInfo();
		
		Student student2 = ctx.getBean("student2",Student.class);
		studentInfo.setStudent(student2);
		studentInfo.getStudentInfo();
		
		ctx.close();
	}

}

.xml 파일을 문자열로 해서 변수config 에 저장합니다.
GenericXmlApplicationContext(config) 로 설정파일을 읽어오게 합니다.
객체 ctx는 .xml 에 객체를 생성하게 합니다.
ctx.getBean 으로 참조할 객체 와 클래스를 불러옵니다.
첫번째 getStudentInfo 는 student1 의 객체를 참조 했습니다.
두번째 getStudentInfo 는 student2의 객체를 참조 했습니다.

package com.javalec.ex;

public class Student {
	
	private String name;
	private String age;
	private String gradeNum;
	private String classNum;
	
	public Student(String name, String age, String gradeNum, String classNum) {
		this.name = name;
		this.age = age;
		this.gradeNum = gradeNum;
		this.classNum = classNum;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name= name;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	public String getGradeNum() {
		return gradeNum;
	}
	public String getClassNum() {
		return classNum;
	}
	}

Student 클래스는 생성자로 필드를 완성했습니다.

package com.javalec.ex;

public class StudentInfo {
	
	private Student student;
	
	public StudentInfo (Student student) {
		this.student = student;
	}
	
	public void getStudentInfo() {
		if(student !=null) {
			System.out.println("이름 :"+student.getName() );
			System.out.println("나이 :"+student.getAge() );
			System.out.println("학년 :"+student.getGradeNum() );
			System.out.println("반 :"+student.getClassNum() );
			System.out.println("========================" );
		
		
		}
	}

		public void setStudent(Student student) {
			this.student = student;
		}
}

StudentInfo 클래스는 출력하는 클래스 입니다. getStudentInfo 메소드는 참조한 객체에 따라 다른 결과 값을 보입니다. student1 과 student2 가 있습니다.
setStudent 메소드는

<?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="student1" class="com.javalec.ex.Student">
		<constructor-arg>
			<value>홍길동</value>
		</constructor-arg>
		<constructor-arg>
			<value>10살</value>
		</constructor-arg>
		<constructor-arg>
			<value>3학년</value>
		</constructor-arg>
		<constructor-arg>
			<value>20번</value>
		</constructor-arg>
	</bean>
	
	<bean id = "student2" class="com.javalec.ex.Student">
		<constructor-arg value="홍길동" />
		<constructor-arg value="9살" />
		<constructor-arg value="2학년" />
		<constructor-arg value="10번" />
	</bean>
	<bean id ="studentInfo" class="com.javalec.ex.StudentInfo">
		<constructor-arg>
			<ref bean = "student1"/>
		</constructor-arg>
	</bean>
</beans>

.xml 파일에 Student 클래스에 student1,2 객체가 있습니다. StudentInfo 의 객체는 student1 을 참조합니다.

그림으로 하면 이렇습니다

profile
건물주가 되는 그날까지

0개의 댓글