Spring - Null-Safety


Null관련 어노테이션

  • NullPointException이 발생하는 것을 방지하기 위해 Spring Framework 5 버전부터 이를 방지하는 어노테이션을 지원하고 있다.
    • @NonNull
    • @Nullable
    • @NonNullApi(패키지 레벨)
    • @NonNullFields(패키지 레벨)
자세히 보기

Spring - SPEL(SPring Expression Language)


AOP(Aspect-Oriented Programming)

  • 프로그래밍에서 발생하는 공통적인 기능을 구현할 때 코드가 중복되지 않도록 모듈화 하는 프로그래밍 기법을 관점지향적 프로그래밍(AOP)라고 한다.
  • 기능별로 Aspect를 만들어 독립적으로 정의하고, 정의된 기능을 어디서 적용해야하는지 명시함으로서 클래스 내부에 구현할 필요 없이 기능을 사용할 수 있다.
  • Java에서는 다중 상속이 불가능하여 AOP가 도입되었다.
자세히 보기

Spring - SPEL(SPring Expression Language)


Spring Expression Language(SpEL)

  • 자바에서 사용할 수 있는 Expression Language를 Spring에서 개선한 표현 언어.
  • SpEL은 기존 EL로부터 메소드 호출, 빈 참조, 객체 그래프와 같은 기능을 추가하여 제공한다.
  • SpEL은 Parser와 같은 클래스를 생성한다면 Spring과 연결되지 않고 독립적으로 사용할 수 있다.
자세히 보기

Spring - 중복된 빈 등록에 대한 처리


스프링 의존 객체 선택

  • 컴포넌트 Annotation은 싱글톤 범위로 등록되며 같은 타입의 빈이 다른 클래스에서 등록된 경우 에러가 발생한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
public interface Repository {
}
@Repository
public class Repository2 implements Repository{
}
@Repository
public class Repository3 implements Repository{
}
@Service
public class Service{
@Autowired //등록된 빈이 중복되어 에러 발생
Repository repository;
}
자세히 보기