본문 바로가기
프로그래밍/Spring

Spring의 필요성 / Spring을 사용하지 않을 때

by 소소로드 2018. 4. 7.
[Spring의 필요성]




- Spring을 사용하지 않은 예제 1


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
32
public class Calulator {
    
    private int firstNum;
    private int secondNum;
 
    public int getFirstNum() {
        return firstNum;
    }
    public void setFirstNum(int firstNum) {
        this.firstNum = firstNum;
    }
    public int getSecondNum() {
        return secondNum;
    }
    public void setSecondNum(int secondNum) {
        this.secondNum = secondNum;
    } 
    
    public void add() {
        System.out.println("add = " + (firstNum + secondNum));
    }
    public void sub() {
        System.out.println("sub = " + (firstNum - secondNum));
    }
    public void mul() {
        System.out.println("mul = " + (firstNum * secondNum));
    }
    public void div() {
        System.out.println("div = " + (firstNum / secondNum));
    }    
}
 

cs


*

한 클래스에 변수 선언 + setter, getter + 계산 관련 실행 메서드




1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class MainClass {
 
    public static void main(String[] args) {
 
        Calulator cal = new Calulator();
        
        cal.setFirstNum(10);
        cal.setSecondNum(2);
        
        cal.add();
        cal.sub();
        cal.mul();
        cal.div();
 
    }
}
cs

*

메인클래스에서 new생성자를 통해 매개변수를 전달하고 계산내용을 실행한다.

만약 계산 값을 바꾸려면 MainClass의 set부분을 수정해줘야 한다.




------------------------------------------------------------------------------



- Spring을 사용하지 않은 예제 2


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Calculator {
    
    public void add(int firstNum, int secondNum) {
        System.out.println("add = " + (firstNum + secondNum));
    }
    public void sub(int firstNum, int secondNum) {
        System.out.println("sub = " + (firstNum - secondNum));
    }
    public void mul(int firstNum, int secondNum) {
        System.out.println("mul = " + (firstNum * secondNum));
    }
    public void div(int firstNum, int secondNum) {
        System.out.println("div = " + (firstNum / secondNum));
    }
}
cs

*

네가지 계산 기능의 메서드를 실행하는 Calculator 클래스




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
32
33
34
35
36
37
38
39
40
41
42
43
44
public class MyCalculator {
    
    Calculator calculator;
    private int firstNum;
    private int secondNum;
    
    
    public Calculator getCalculator() {
        return calculator;
    }
    
    public void setCalculator(Calculator calculator) {
        this.calculator = calculator;
    }
    
    public int getFirstNum() {
        return firstNum;
    }
    
    public void setFirstNum(int firstNum) {
        this.firstNum = firstNum;
    }
    
    public int getSecondNum() {
        return secondNum;
    }
    
    public void setSecondNum(int secondNum) {
        this.secondNum = secondNum;
    }
    
    public void plus() {
        calculator.add(firstNum, secondNum);
    }
    public void substract() {
        calculator.sub(firstNum, secondNum);
    }
    public void multiply() {
        calculator.mul(firstNum, secondNum);
    }
    public void divide() {
        calculator.div(firstNum, secondNum);
    }
}
 

*

이번에는 Calculator타입의 참조변수 / 변수 선언 + setter, getter + 계산 친구들 위에 씌운 메서드



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class MainClass {
 
    public static void main(String[] args) {
        
        MyCalculator myCalulator = new MyCalculator();
        myCalulator.setCalculator(new Calculator());
        myCalulator.setFirstNum(10);
        myCalulator.setSecondNum(2);
        
        myCalulator.plus();
        myCalulator.substract();
        myCalulator.multiply();
        myCalulator.divide();
 
    }
 
}
 
cs


*

메인클래스에서 01과 동일한 방법으로 실행한다.