━━━━ ◇ ━━━━
Spring/Spring 수업

Spring 05. 스프링 맛보기 Calculator

Spring 맛보기를 위해서 Calculator 를 만들어 보자.



Simple Spring Maven 으로 새 프로젝트를 생성



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
package com.aristatait.spring;
 
public class Calculator { //기존에 제공하고 있는 클래스 라고 가정
 
    private int firstNum;
    private int secondNum;
    
    ////user custom method /////////////////////////
    public void add(int f, int s){
        System.out.println("add() 실행됨");
        System.out.println(f + " + " + s + " = " + (f+s));
    }
 
    
    ////Getter Setter /////////////////////////////
    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;
    }
}
 
cs


우리는 이 Calculator 클래스를 가공하여 MyCalculator 클래스를 만들었다.


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
package com.aristatait.spring;
 
public class MyCalculator {
 
    private Calculator calculator;
    private int firstNum;
    private int secondNum;
    
    //////// User custom method //////////////////////
    public void add(){
        calculator.add(firstNum, secondNum);
    }
    
    //////// Getter Setter      //////////////////////
    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;
    }
    ////////////////////////////////////////////////////
}
 
cs


이 클래스에서는 기존에 제공된 Calculator 의 메소드를 사용하는 메소드를 가지고 있다.



일단 메인 클래스도 만들어 놓고




위와 같이 리소스 폴더에 우클릭 -> new -> Spring Bean Configuration File 을 선택



만들어주면



위와 같이 xml 소스가 자동으로 입력된다.



오버뷰를 선택해서



뉴 빈을 선택한다.



id 를 입력하고 Browse 를 클릭하여



MyCalculator 클래스를 불러온다.



finish!



이런 방법으로 bean 을 만들 수 있다.


물론 직접 코딩해도 된다.




위와 같이 bean 을 입력한다.



이제 메인을 완성 하고, 실행해 보면 콘솔창에 계산 결과가 표시된다.


지금까지 한 내용이 뭐지 싶을꺼다.


우리가 자바에서 위와 같은 프로그램을 코딩했다면


객체를 생성하기 위해 new를 사용하였을 것이다.


하지만 스프링에서는 xml에 bean 을 등록하는 행위가 


객체를 생성하는 것을 대신한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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.aristatait.spring.Calculator"></bean>
    
 
    <bean id="myCalculator"
        class="com.aristatait.spring.MyCalculator">
        <property name="calculator">
            <ref bean="calculator"/>
        </property>
        <property name="firstNum" value="10"></property>
        <property name="secondNum" value="2"></property>
    </bean>
</beans>
 
cs


위의 xml 에서 property 들은 각 클래스의 변수임을 알 수 있다.


1
2
3
4
String configLoc = "classpath:applicationCTX.xml";
        AbstractApplicationContext ctx 
                    = new GenericXmlApplicationContext(configLoc);
        MyCalculator myCalculator = ctx.getBean("myCalculator", MyCalculator.class);
cs


메인에서 이 xml 파일을 연결시켜주면 된다.

COMMENT