728x90
제어의 역전과 의존성 주입
스프링은 모든 기능의 기반을 제어의 역전IoC와 의존성 주입DI에 두고 있습니다.
Inversion of Control
외부에서 관리하는 객체를 가져옴, 스프링 컨테이너가 객체를 관리, 제공하는 역활을 한다.
public class A {
b = new B();
}
//클래스 A 에서 new 키워드로 클래스 B 의 객체를 생성
Dependency Injection
어떤 클래스가 다른 클래스에 의존한다.
public class A{
@Autowired
B b;
}
빈과 스프링 컨테이너
스프링 컨테이너: 빈을 생성하고 관리, 빈의 생명주기를 관리함
빈: 스프링 컨테이너가 생성하고 관리하는 객체
빈을 스프링 컨테이너에 등록하기 위해 XML 파일 설정 애너테이션 추가 등 여러가지 방법을 제공
MyBean 클래스에 @Component 애너테이션을 붙히면 빈으로 등록 myBean으로 관리 됨
@Component
public class MyBean{
}
관점 지향 프로그래밍
Aspect Oriented Programming
프로그래밍에 대한 관점을 핵심 관점, 부가 관점으로 나누어 관심 기준으로 모듈화
이식 가능한 서비스 추상화
Portable Service Abstraction: 스프링에서 제공하는 다양한 기술들을 추상화해 개발자가 쉽게 사용하는 인터페이스
ex) 클라이언트의 매핑과 클래스, 메서드의 매핑을 위한 에너테이션
JPA, Mybatis, JDBC같이 db에 접근하기 위한 기술들이 많은데 어떤 기술을 사용하든 일관된 방식으로 접근