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

Spring 이란?

by 안드레날린 2023. 2. 2.

Spring 공식 웹 사이트

https://spring.io/

 

Spring | Home

Cloud Your code, any cloud—we’ve got you covered. Connect and scale your services, whatever your platform.

spring.io

 

Spring 이란?

Spring은 아파치 라이선스 2.0을 따르는 Java 기반의 오픈 소스 애플리케이션 프레임워크 이다.

 

Spring Framework 특징

Spring의 핵심인 Spring Framework의 특징은 아래와 같다.

  • POJO (Plain Old Java Object) 방식
  • IoC (Inversion of Control)
  • DI (Dependency Injection)
  • AOP (Aspect Oriented Programming)

 

특징 살펴 보기

# 제어의 역전 (IoC)

일반 적인 자바 개발의 경우 객체를 생성하고 사용하는 일련의 작업을 개발자가 직접 제어 하는 구조 이다. 하지만 IoC를 특징으로 하는 Spring 의경우 사용할 객체를 직접 생성하지 않고 객체의 생명 주기 관리를 Spring Container에 위임 한다.

 

# 의존성 주입 (DI)

DI는 IoC의 방법 중 하나로 Spring에서 의존성을 주입 받는 방법은 세 가지가 있다.

  • 생성자를 통한 의존성 주입
  • 필드 객체 선언을 통한 의존성 주입
  • setter 메서드를 통한 의존성 주입

 

먼저 일반적인 자바 코드에서의 객체 사용법은 아래와 같다.

public class NoDIHello {
    private MyService myService = new MyService();
    
    public String greet() {
        return myService.getMorning();
    }
}

 

의존성을 주입 받는 경우 아래와 같다.

# 생성자를 통한 의존성 주입

public class DIHello() {
    private MyService myService;

    @Autowired
    public DIHello(MyService myService) {
        this.myService = myService;
    }
}


# 필드 객체 선언을 통한 의존성 주입

public class DIHello() {
    @Autowired
    private MyService myService;
}


# setter 메서드를 통한 의존성 주입

public class DIHello() {

    private MyService myService;

    @Autowired 
    public void setMyService(MyService myService) {
        this.myService = myService;
    }
}