スプリング簡易計算機とDIの方法について


MainClass.java

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) {
		
//		Calculation calculation = new Calculation();
//		calculation.setFirstNum(10);
//		calculation.setSecondNum(2);
//		
		
		String configLocation = "classpath:NewFile.xml";
		AbstractApplicationContext ctx = new GenericXmlApplicationContext(configLocation);
		MyCalculator myCalculator=ctx.getBean("myCalculator",MyCalculator.class);
		
		myCalculator.add();
		myCalculator.sub();
		myCalculator.mul();
		myCalculator.div();
	}

}

スプリングじゃない!MainClassでCalcuationインスタンスを使用してCalculationオブジェクトを作成し、必要なメソッドを呼び出す場合(現在のコメント処理)
分割方法:
外部ファイルを使用して必要なオブジェクトを取得し、メソッドを呼び出します.
外部ファイルはです.xml
リソース内

Spring Beanプロファイルを選択できますが、作成者にエラーが発生しました.

なぜかJREバージョン賭けて転ぶ
代替案として.
xmlファイルを作成するだけです.
<?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">


</beans>
Bean Configuration Fileソースをコピーして貼り付け、効果的です!
とにかく.
application.xml


<?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 = "calculator"  class="com.javalec.ex.Calculator"/>
//Calculator 의 객체 calculator 를 만들어줬다
<bean id="myCalculator" class="com.javalec.ex.MyCalculator">
//MyCalculator 객체 myCalculator 를 만들었다
	<property name="calculator">	//멤버변수로 calculator 를 뒀다
		<ref bean = "calculator"/> // 참조형 변수로 얘를 둬서 자료형이 Calculator 이다
	</property>
	<property name="firstNum" value="10"/>//멤버변수 firstNum 이고 값이 10
	<property name="secondNum" value="2"/>//멤버변수 secondNum 이고 값이 2

</bean>
</beans>
application.xmlが必要なオブジェクトの生成
MyCalculator.java

package com.javalec.ex;

public class MyCalculator {
	public Calculator calculator;
	private int firstNum;
	private int secondNum;
	
	public MyCalculator() {
		
	}
	public void add() {
		calculator.addition(firstNum,secondNum);
	}
	public void sub() {
		calculator.subtraction(firstNum,secondNum);
	}
	public void mul() {
		calculator.multiplication(firstNum,secondNum);
	}
	public void div() {
		calculator.division(firstNum,secondNum);
	}
	
	public void setCalculator(Calculator calculator) { //받아온 calculator 주소를 멤버변수에 두다
		this.calculator = calculator;
	}
	
	public void setFirstNum(int firstNum) { //받아온 값을 멤버변수에
		this.firstNum = firstNum;
	}
	
	public void setSecondNum(int secondNum) {//받아온 값을 멤버변수에
		this.secondNum = secondNum;
	}

		
}
Calculator.java

package com.javalec.ex;

public class Calculator {
	public void addition(int f, int s) {
		int result = f + s;
		System.out.println(f + " + " + s + "=" + result);
		
	}
	public void subtraction(int f, int s) {
		int result = f-s;
		System.out.println(f + " - " + s + " = " + result);
	}
	public void multiplication(int f, int s) {
		int result = f * s;
		System.out.println(f + " * " + s + " = " + result);
	}
	public void division(int f, int s) {
		int result = f/s;
		System.out.println(f + " / " + s + " = " + result);
	}

}

McCalculatorには計算機アドレスがあるので、そこからメソッドを呼び出すのはここまでです.

図で表すなら、そうです.