
📍IoC (Inversion of Control) 란?
📍DI (Dependency Injection) 란?
// 객체를 주입받는 모습 예
public class A {
// A에서 B를 주입받음
@Autowired
B b;
}
@Autowired 라는 애너테이션은 스프링 컨테이너에 있는 빈이라는 것을 주입하는 역할을 한다. 빈은 쉽게 말해 스프링 컨테이너에서 관리하는 객체!
📍스프링 컨테이너 란?
빈이 생성되고 소멸되기까지의 생명주기를 스프링 컨테이너에서 관리한다
📍빈 이란?
예를 들어 MyBean이라는 클래스에 @Component 애너테이션을 붙이면 MyBean 클래스가 빈에 등록된다. 이후 스프링 컨테이너에서 이 클래스를 관리한다. 이때 빈의 이름은 클래스 이름의 첫글자를 소문자로 바꿔 관리한다. 즉, MyBean 클래스의 빈 이름은 myBean이다.
// 클래스를 빈으로 등록하는 방법 예
@Component // 클래스MyBean 빈으로 등록
public class MyBean {
}
📍AOP (Aspect Oriented Programming)
AOP 통해 핵심 관점 코드에만 집중, 프로그램의 변경과 확장에도 유연하게 대응 가능하다
📍PSA (Portable Service Abstraction)