학원/스프링-학원

스프링 프로젝트 만들기

수풀속의고라니 2022. 5. 9. 14:31
728x90

DI(Dependency Injection)

 

퍼블릭 클래스에 메인 메소드가 있는 것을 A객체라고 할 수 있고 나머지 클래스는 B, C객체라고 할 수 있으며, 이들은 
A객체에 의존적인 것으로 볼 수 있다.

 

이들의 값은 객체 생성, setter()메서드 사용 혹은 생성자를 통해서 객체에 값을 넣을 수 있다.

 

IOC 컨테이너(Inversion of Control)

 

IOC 컨테이너에 있는 객체들을 자신들이 스스로 컨트롤 하고 있는 것이 아니라, A객체가 그 통제권을 가지고 있는 것을 IOC라고 하며, IOC 컨테이너는 객체들이 모여있는 곳이라고 볼 수 있다.

 

Maven(빌드관리 도구)

- 패키징 해주는 빌드 자동화 도구

- 프로젝트 생성, 테스트 빌드, 베포 등의 작업을 위한 전용 프로그램

 

예제

- 프로젝트 만들고, Spring MVC Project로 생성하고 next

- com.javalec.spring_2_1 이렇게 입력(spring_2_1을 프로젝트 이름)

- 그럼 뭐가 뜨는데 show solution - 엔터프라이즈 있는거 선택해서 컨펌 - 리스타트 나우

 

예제 1 - 사칙연산

<Calculation.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
32
33
34
35
public class Calculation {
    private int firstNum;
    private int secondNum;
    
    public void add() {
        System.out.println("add");
        System.out.println(firstNum+"+"+secondNum+"="+(firstNum+secondNum));
    }
    public void sub() {
        System.out.println("sub");
        System.out.println(firstNum+"-"+secondNum+"="+(firstNum-secondNum));
    }
    public void mul() {
        System.out.println("mul");
        System.out.println(firstNum+"*"+secondNum+"="+(firstNum*secondNum));
    }
    public void div() {
        System.out.println("div");
        System.out.println(firstNum+"/"+secondNum+"="+(firstNum/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;
    }
    
}
cs

 

<MainClass.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.javalec.spring_2_1;
 
public class MainClass {
    public static void main(String[] args) {
        Calculation calculation = new Calculation();
        calculation.setFirstNum(10);
        calculation.setSecondNum(2);
        
        calculation.add();
        calculation.sub();
        calculation.mul();
        calculation.div();
    }
}
cs

 

결과

 

문제 1 - 원과 사각형의 넓이 구하기

<Circle.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.javalec.spring_ex2_1;
 
public class Circle {
    private float half;
 
    public void c() {
        System.out.print("원의 면적은 ");
        System.out.println(half*half*3.14);
    }
    public float getHalf() {
        return half;
    }
 
    public void setHalf(float half) {
        this.half = half;
    }
}
cs

 

<Rectangle.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
package com.javalec.spring_ex2_1;
 
public class Rectangle {
    private int width;
    private int height;
    
    public void mulWH() {
        System.out.print("사각형의 면적은 ");
        System.out.println(width*height);
    }
    public int getWidth() {
        return width;
    }
    public void setWidth(int width) {
        this.width = width;
    }
    public int getHeight() {
        return height;
    }
    public void setHeight(int height) {
        this.height = height;
    }
}
 
cs

 

<Draw.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.javalec.spring_ex2_1;
 
public class Draw {
    public static void main(String[] args) {
        Circle circle = new Circle();
        Rectangle rectangle = new Rectangle();
        circle.setHalf(10);
        rectangle.setHeight(30);
        rectangle.setWidth(20);
        
        circle.c();
        rectangle.mulWH();
    }
}
cs

 

결과

 

 

문제 2 - 계절과 환전

 

 

<Season.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
package com.javalec.spring_ex2_2;
 
public class Season {
    private int season;
 
    public int getSeason() {
        return season;
    }
 
    public void setSeason(int season) {
        this.season = season;
    }
    
    public void s() {
        if(season == 3 || season == 4 || season == 5) {
            System.out.println("봄");
        }
        else if(season == 6 || season == 7 || season == 8) {
            System.out.println("여름");            
        }
        else if(season == 9 || season == 10 || season == 11) {
            System.out.println("가을");            
        }
        else if(season == 12 || season == 1 || season == 2) {
            System.out.println("겨울");            
        }
    }
}
 
cs

 

<Won2Dollar.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package com.javalec.spring_ex2_2;
 
public class Won2dollar {
    private float won;
 
    public float getWon() {
        return won;
    }
 
    public void setWon(float won) {
        this.won = won;
    }
    
    public void w2d() {
        float dollar = won/1200;
        System.out.println("$"+dollar);
    }
}
cs

 

<SeaonDollar.java>

1
2
3
4
5
6
7
8
9
10
11
package com.javalec.spring_ex2_2;
 
public class SeasonDollar {
    public static void main(String[] args) {
        Season season = new Season();
        Won2dollar won2dollar = new Won2dollar();
        season.setSeason(9);
        won2dollar.setWon(3300);
        season.s();
        won2dollar.w2d();
    }
cs

 

문제 3 - 3의 배수와 10의 자리, 1의 자리 비교

 

 

<Three.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.javalec.spring_ex2_3;
 
public class Three {
    private int number;
 
    public int getNumber() {
        return number;
    }
 
    public void setNumber(int number) {
        this.number = number;
    }
    
    public void process() {
        if (number%3==0 && number!=0) {
            System.out.println("3의 배수입니다.");
        } else {
            System.out.println("3의 배수가 아닙니다.");            
        }
    }
}
cs

 

<DivAndRemains.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.javalec.spring_ex2_3;
 
public class DivAndRemains {
    private int number;
 
    public int getNumber() {
        return number;
    }
 
    public void setNumber(int number) {
        this.number = number;
    }
    
    public void process() {
        if (number/10 == number%10) {
            System.out.println("10의 자리와 1의 자리가 같습니다.");
        } else {
            System.out.println("10의 자리와 1의 자리가 다릅니다.");
        }
    }
}
cs

 

<ThreeDivAndRemains.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
package com.javalec.spring_ex2_3;
 
public class ThreeDivAndRemains {
    public static void main(String[] args) {
        Three three = new Three();
        DivAndRemains divAndRemains = new DivAndRemains();
        
        three.setNumber(129);
        divAndRemains.setNumber(77);
        three.process();
        divAndRemains.process();
    }
}
cs

 

문제 4 - 좌표와 중간 값 구하기

 

 

<Retangle.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
package com.javalec.spring_ex2_4;
 
public class Rectangle {
    private int x;
    private int y;
    public int getX() {
        return x;
    }
    public void setX(int x) {
        this.x = x;
    }
    public int getY() {
        return y;
    }
    public void setY(int y) {
        this.y = y;
    }
    
    public void process() {
        if (x>=100 && y>=100 && x<=200 && y<=200) {
            System.out.println("("+x+","+y+")는 사각형 안에 있습니다.");
        } else {
            System.out.println("("+x+","+y+")는 사각형 안에 없습니다.");
 
        }
    }
}
cs

 

<Median.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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.javalec.spring_ex2_4;
 
import java.util.Arrays;
 
public class Median {
    private int num1;
    private int num2;
    private int num3;
    public int getNum1() {
        return num1;
    }
    public void setNum1(int num1) {
        this.num1 = num1;
    }
    public int getNum2() {
        return num2;
    }
    public void setNum2(int num2) {
        this.num2 = num2;
    }
    public int getNum3() {
        return num3;
    }
    public void setNum3(int num3) {
        this.num3 = num3;
    }
    
//    public void process() {
//        if(num1>=num2) {
//            if(num2>=num3) {
//                System.out.println("입력된 정수가 "+num1+"와"+num2+"와"+num3+"의 중간값은"+num2);
//            }
//            else if (num1<=num3) {
//                System.out.println("입력된 정수가 "+num1+"와"+num2+"와"+num3+"의 중간값은"+num1);
//            }else {
//                System.out.println("입력된 정수가 "+num1+"와"+num2+"와"+num3+"의 중간값은"+num3);
//            }
//        }
//        else if (num1>num3) {
//            System.out.println("입력된 정수가 "+num1+"와"+num2+"와"+num3+"의 중간값은"+num1);
//        }
//        else if (num2>num3) {
//            System.out.println("입력된 정수가 "+num1+"와"+num2+"와"+num3+"의 중간값은"+num3);
//        }else {
//            System.out.println("입력된 정수가 "+num1+"와"+num2+"와"+num3+"의 중간값은"+num2);
//        }
//    }
    public void process() {
          int [] arr = new int [3];
          arr[0= num1;
          arr[1= num2;
          arr[2= num3;
          Arrays.sort(arr);
          System.out.println("입력된 정수가 " + arr[0+ "와 " + arr[1+ "와 " + arr[2+"의 중간값은 " + arr[1]);
       }
}
cs

 

- array.sort()로 정수의 크기별로 오름차순으로 정렬하고, 그 중간 값인 arr[1]을 출력하면 중간 크기의 값을 구할 수 있음

 

<RectangleMedian.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.javalec.spring_ex2_4;
 
public class RectangleMedian {
    public static void main(String[] args) {
        Rectangle rectangle = new Rectangle();
        Median median = new Median();
        
        rectangle.setX(150);
        rectangle.setY(150);
        median.setNum1(20);
        median.setNum2(100);
        median.setNum3(33);
        
        rectangle.process();
        median.process();
    }
}
cs

 

문제 5 - 배수 여부, 삼각형 가능 여부

 

 

<Multiple.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
package com.javalec.spring_ex2_5;
 
public class Multiple {
    private int num;
 
    public int getNum() {
        return num;
    }
 
    public void setNum(int num) {
        this.num = num;
    }
    
    public void process() {
        if (num%3==0 && num!=0) {
            System.out.println("3의 배수이다");                                            
        }
        if (num%5==0 && num!=0) {
            System.out.println("5의 배수이다");                                            
        }
        if (num%8==0 && num!=0) {
            System.out.println("8의 배수이다");                                            
        }
    }
}
 
cs

 

 

<Triangle.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
32
33
package com.javalec.spring_ex2_5;
 
public class Triangle {
    private int num1;
    private int num2;
    private int num3;
    public int getNum1() {
        return num1;
    }
    public void setNum1(int num1) {
        this.num1 = num1;
    }
    public int getNum2() {
        return num2;
    }
    public void setNum2(int num2) {
        this.num2 = num2;
    }
    public int getNum3() {
        return num3;
    }
    public void setNum3(int num3) {
        this.num3 = num3;
    }
    
    public void process() {
        if ((num1+num2)>num3 || (num1+num3)>num2 || (num2+num3)>num1) {
            System.out.println("삼각형이 됩니다.");
        }else {
            System.out.println("삼각형이 안됩니다.");
        }
    }
}
cs

 

<MultipleTriangle.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package com.javalec.spring_ex2_5;
 
public class MultipleTriangle {
    public static void main(String[] args) {
        Multiple multiple = new Multiple();
        Triangle triangle = new Triangle();
        
        multiple.setNum(240);
        triangle.setNum1(4);
        triangle.setNum2(3);
        triangle.setNum3(5);
        
        multiple.process();
        triangle.process();
    }
}
cs

 

문제 6 - 별찍기, 알파벳 찍기

 

 

<Asterisk.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.javalec.spring_ex2_6;
 
public class Asterisk {
    private int num;
 
    public int getNum() {
        return num;
    }
 
    public void setNum(int num) {
        this.num = num;
    }
    
    public void process() {
        for (int i = 0; i < num; i++) {
            for (int j = 0; j < num-i; j++) {
                System.out.print("*");
            }
            System.out.println("");
        }
    }
}
 
cs

 

<Capital.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package com.javalec.spring_ex2_6;
 
public class Capital {
    private char s;
 
    public char getS() {
        return s;
    }
 
    public void setS(char s) {
        this.s = s;
    }
    
    public void process() {
        for (char i = s; i >= 'A'; i--) {
            for (char j = 'A'; j <=i; j++) {
                System.out.print(j);
            }
            System.out.println("");
        }
    }
}
 
cs

 

 

<AsteriskCapital.java>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.javalec.spring_ex2_6;
 
public class AsteriskCapital {
    public static void main(String[] args) {
        Asterisk asterisk = new Asterisk();
        Capital capital = new Capital();
        
        asterisk.setNum(5);
        capital.setS('F');
        
        asterisk.process();
        capital.process();
    }
}
cs

 

 

728x90