# 프레임워크 : 특정한 목적에 맞게 프로그래밍을 쉽게 하기 위한 약속
# 스프링 : 자바언어를 기반으로 다양한 어플리케이션을 제작하기 위한 약속된 프로그래밍 틀
# DI (Dependency Injection) : 혼자서 작업을 하지 못하고 작업을 진행할때 다른 객체를 의존하기때문에 호출하여 진행하는 객체
* 이때 다른 객체들을 어떻게 생성하며 어떻게 사용하나?
1) A{ new B(); ... }
2) 누군가가 이미 생성한 객체를 사용 A{ setter나 contruct(생성자) 사용 } : spring의 방법
이 생성된 객체들을 담고있는 IOC컨테이너!
# IOC (Inversion Of Control)
# spring 기본 예제
Calculator.java |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 |
package com.javalec.ex;
public class Calculator {
public void addition(int f, int s) {
System.out.println("add");
System.out.print(f + " + " + s + " = ");
System.out.println(f+s);
}
public void subtract(int f, int s) {
System.out.println("substract");
System.out.print(f + " - " + s + " = ");
System.out.println(f-s);
}
public void multiplication(int f, int s) {
System.out.println("mult");
System.out.print(f + " * " + s + " = ");
System.out.println(f*s);
}
public void division(int f, int s) {
System.out.println("div");
System.out.print(f + " / " + s + " = ");
System.out.println(f/s);
}
}
|
cs | |
MainClass.java |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 |
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) {
String configLoc = "classpath:applicationCTX.xml";
AbstractApplicationContext ctx = new GenericXmlApplicationContext(configLoc);
MyCalculator myCalculator = ctx.getBean("myCalculator", MyCalculator.class);
myCalculator.add();
myCalculator.sub();
myCalculator.mult();
myCalculator.div();
}
}
|
cs | |
MyCalculator.java |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 |
package com.javalec.ex;
public class MyCalculator {
private Calculator calculator;
private int firstNum;
private int secondNum;
public void setFirstNum(int firstNum) {
this.firstNum = firstNum;
}
public void setSecondNum(int secondNum) {
this.secondNum = secondNum;
}
public void setCalculator(Calculator calculator) {
this.calculator = calculator;
}
public void add() {
calculator.addition(firstNum, secondNum);
}
public void sub() {
calculator.subtract(firstNum, secondNum);
}
public void mult() {
calculator.multiplication(firstNum, secondNum);
}
public void div() {
calculator.division(firstNum, secondNum);
}
}
|
cs | |
applicationCTX.xml |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 |
<?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"/>
<bean id ="myCalculator" class="com.javalec.ex.MyCalculator">
<property name="calculator">
<ref bean="calculator"/>
</property>
<property name="firstNum" value="10"/>
<property name="secondNum" value="2"/>
</bean>
</beans>
|
cs | |