강의_5장_01_DI활용.pdf

package cm.lgy.spring5_1;

public class Student {
	private String name;
	private int age;
	private int gradeNum;
	private int classNum;
	
	/***** 생성자 추가 *****/
	public Student(String name, int age, int gradeNum, int 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 int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getGradeNum() {
		return gradeNum;
	}
	public void setGradeNum(int gradeNum) {
		this.gradeNum = gradeNum;
	}
	public int getClassNum() {
		return classNum;
	}
	public void setClassNum(int classNum) {
		this.classNum = classNum;
	}	
}
package cm.lgy.spring5_1;

public class StudentInfo {
	private Student student;

	/***** 생성자 추가 *****/
	public StudentInfo(Student student) {
		this.student = student;
	}

	public void getStudentInfo() {
		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;
	}
	
	
}
<?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="cm.lgy.spring5_1.Student">
		<constructor-arg>
			<value>홍길동</value>
		</constructor-arg>
		<constructor-arg>
			<value>18</value>
		</constructor-arg>
		<constructor-arg>
			<value>3</value>
		</constructor-arg>
		<constructor-arg>
			<value>2</value>
		</constructor-arg>
	</bean>
	
	<bean id="student2" class="cm.lgy.spring5_1.Student">
		<constructor-arg value="홍길순"></constructor-arg>
		<constructor-arg value="9"></constructor-arg>
		<constructor-arg value="2"></constructor-arg>
		<constructor-arg value="1"></constructor-arg>
	</bean>

	<bean id="studentInfo" class="cm.lgy.spring5_1.StudentInfo">
		<constructor-arg>
			<ref bean="student1"></ref>
		</constructor-arg>
	</bean>

</beans>
package cm.lgy.spring5_1;

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

public class MainClass {
	public static void main(String[] args) {
		String configloc= "classpath:applicationCTX.xml";
		AbstractApplicationContext ctx =new GenericXmlApplicationContext(configloc);
		StudentInfo studentInfo = ctx.getBean("studentInfo",StudentInfo.class);
//		이름~반 출력
		studentInfo.getStudentInfo();
		
//		studentInfo 이용해서 student2 셋팅후 불러오기
		Student student = ctx.getBean("student2",Student.class);
		studentInfo.setStudent(student);
		studentInfo.getStudentInfo();
		
		ctx.close();
	}
}

20230519124803.png

실습문제_5-1.pdf

package com.lgy.spring_ex5_1;

public class Circle {
	private int radius;
	

	public Circle(int radius) {
		this.radius = radius;
	}

	public double process() {
		return radius*radius*3.14;
	}

	public int getRadius() {
		return radius;
	}

	public void setRadius(int radius) {
		this.radius = radius;
	}
	
	
}
package com.lgy.spring_ex5_1;

public class CircleInfo {
	Circle circle;

	public void getCirclInfo() {
		System.out.println("반지름: "+ circle.getRadius());
		System.out.println("원의 면적은: "+circle.process());
	}

	public CircleInfo(Circle circle) {
		this.circle = circle;
	}

	public Circle getCircle() {
		return circle;
	}

	public void setCircle(Circle circle) {
		this.circle = circle;
	}

}
<?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="circle1" class="com.lgy.spring_ex5_1.Circle">
		<constructor-arg>
			<value>5</value>
		</constructor-arg>
	</bean>
	
	<bean id="circle2" class="com.lgy.spring_ex5_1.Circle">
		<constructor-arg>
			<value>10</value>
		</constructor-arg>
	</bean>
	
	<bean id="circleInfo" class="com.lgy.spring_ex5_1.CircleInfo">
		<constructor-arg>
			<ref bean="circle1"></ref>
		</constructor-arg>
	</bean>
</beans>
package com.lgy.spring_ex5_1;

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

public class MainCircle {
	public static void main(String[] args) {
		AbstractApplicationContext ctx = new GenericXmlApplicationContext("classpath:circleCTX.xml");
		CircleInfo circleInfo = ctx.getBean("circleInfo",CircleInfo.class);
		
		Circle circle2 = ctx.getBean("circle2",Circle.class);
		circleInfo.getCirclInfo();
		circleInfo.setCircle(circle2);
		circleInfo.getCirclInfo();
	}
	
}

20230519154003.png