티스토리 뷰
Spring : 다양한 어플리케이션을 제작하기 위한 약속된 프로그래밍 틀
- JAVA 기반
- 코드의 경량화
- 개발 중 테스트가 쉬움
- 톰캣 사용 가능
- 국내 표준 프레임워크
- 다양한 어플리케이션을 쉽고 빨리 개발 가능
- 부품을 생성하고 조립하는 라이브러리 집합체
- 동적 웹사이트 개발
- 관점 지향
- 확장성
DI (Dependency Injection)
- 객체를 직접 생성 하는것이 아니라 외부에서 만들어서 setter( ) 또는 construct( )에 대입
IOC 컨테이너
- 인스턴스의 생명주기 관리
- 추가적인 기능들 제공
- 코드의 처리과정을 갖는 독립적인 주체 : 알아서 컨트롤 가능
- 외부에서 제어
예시
- Calculation.java
package com.java.ex;
public class Calculation {
public void add(int i, int j) {
System.out.println("add");
System.out.println(i + "+" + j + "=" + (i + j));
}
public void sub(int i, int j) {
System.out.println("sub");
System.out.println(i + "-" + j + "=" + (i - j));
}
public void multi(int i, int j) {
System.out.println("multi");
System.out.println(i + "*" + j + "=" + (i * j));
}
public void div(int i, int j) {
System.out.println("div");
System.out.println(i + "/" + j + "=" + (i / j));
}
}
- MyCalculation.java
package com.java.ex;
public class MyCalculation {
Calculation cal;
private int num1;
private int num2;
public MyCalculation() {
}
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 void add() {
cal.add(num1, num2);
}
public void sub() {
cal.sub(num1, num2);
}
public void mul() {
cal.multi(num1, num2);
}
public void div() {
cal.div(num1, num2);
}
public void setCal(Calculation cal) {
this.cal = cal;
}
}
Spring 적용 전
- Main.java
package com.java.ex;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 스프링 적용 안함
MyCalculation mc = new MyCalculation();
mc.setCal(new Calculation());
mc.setNum1(10);
mc.setNum2(4);
mc.add();
mc.sub();
mc.mul();
mc.div();
}
}
Spring 적용 후
- 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="Calculation" class="com.java.ex.Calculation" />
<bean id="myCalculation" class="com.java.ex.MyCalculation">
<!-- 필드 설정 -->
<property name="cal">
<ref bean=" calculation " />
</property>
<property name="num1" value="10"></property>
<property name="num2" value="4"></property>
</bean>
- Main.java
package com.java.ex;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.GenericXmlApplicationContext;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
// 스프링 적용
String location = "classpath:application.xml";
AbstractApplicationContext ctx = new GenericXmlApplicationContext(location);
MyCalculation mcz = ctx.getBean("myCalculation", MyCalculation.class);
mcz.add();
mcz.sub();
mcz.mul();
mcz.div();
}
}
'BACK-END > SPRING' 카테고리의 다른 글
[SPRING] MVC 게시판 (0) | 2019.09.25 |
---|---|
[SPRING] MYBATIS MYSQL 연동 (0) | 2019.09.25 |
[SPRING] IoC - SPRING CONTAINER (0) | 2019.09.25 |
[SPRING] AOP - 관점 지향 프로그래밍 (0) | 2018.05.17 |
[SPRING] FRAMEWORK (0) | 2018.05.15 |
댓글