728x90
반응형
728x90
반응형
Spring Framework DI https://hoooon-s.tistory.com/197?category=1069858 [Spring] Inversion of Control & Dependency Injection Spring Framework 스프링 프레임워크는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크이다. 자바로 서비스를 개발할 때 비즈니스 로직뿐 아니라 트랜잭션 등의 로직까지 작성해야 하는 부 hoooon-s.tistory.com AOP https://hoooon-s.tistory.com/198?category=1069858 [Spring] AOP - Aspect Oriented Programming AOP (Aspect Oriented Programming) 관점 지향 프로그래밍..
Spring Framework 스프링 프레임워크는 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크이다. 자바로 서비스를 개발할 때 비즈니스 로직뿐 아니라 트랜잭션 등의 로직까지 작성해야 하는 부담감을 없애고자 EJB(Enterprise JavaBeans)를 사용하였다. EJB를 사용하면서 트랜잭션 등의 로우 레벨 로직 개발 부담은 줄었지만 이런 기능을 사용하기 위해 거대한 EJB를 extends 하거나 implement 하게 되어 간단한 서비스가 무겁게 변하게 되었다. 자바의 기본적인 객체지향에 집중하고, 특정 클래스나 라이브러리에 종속되지 않는 POJO로 코드를 작성하여 이 문제를 해결하고자 하였고 스프링 프레임워크가 탄생했다. 그래서 대부분의 사람들이 스프링을 설명할 때 경량화된, 가벼운 프레임..
@ComponentScan @Configuration @ComponentScan( basePackages = "hello.core", excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) public class AutoAppConfig { } 컴포넌트 스캔은 @Component 어노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록해준다. @Configuration, @Controller, @Service, @Repository 등이 대상이 되는 이유는 각 어노테이션 내부로 들어가면 @Component가 선언되어 있기 때문이다. basePackages 속성으로 탐색할 패키지 시..
제어의 역전 (IoC - Inversion of Control) 기존 프로그램은 클라이언트 구현 객체(OrderServiceImpl)가 스스로 필요한 서버 구현 객체를 생성하고, 연결, 실행했다. 하지만 AppConfig 등장 이후에 구현 객체(OrderServiceImpl)는 자신의 로직을 실행하는 역할만 담당한다. 구현 객체를 생성하고, 연결하는 제어 흐름은 AppConfig가 가져단다. 이렇듯 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전이라 한다. 프레임워크 vs 라이브러리 프레임워크 : 내가 작성한 코드를 제어하고, 대신 실행 라이브러리 : 내가 작성한 코드가 직접 제어의 흐름을 담당 의존 관계 주입 (DI - Dependency Injection) Ord..