스프링(3번째)
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 을 참조합니다.
그림으로 하면 이렇습니다
Author And Source
이 문제에 관하여(스프링(3번째)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kychoi123/스프링3번째저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)