728x90
반응형
728x90
반응형
스프링 컨테이너 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService = applicationContext.getBean("memberService", MemberService.class); ApplicationContext를 스프링 컨테이너라 한다. 기존에는 AppConfig를 통해 직접 객체를 생성하고 DI 했지만, 이젠 스프링 컨테이너를 사용한다. 스프링 컨테이너를 생성할 때는 구성 정보를 지정해주어야 한다. (여기서는 AppConfig.class) @Configuration public class AppConfig { @Bean ..
제어의 역전 (IoC - Inversion of Control) 기존 프로그램은 클라이언트 구현 객체(OrderServiceImpl)가 스스로 필요한 서버 구현 객체를 생성하고, 연결, 실행했다. 하지만 AppConfig 등장 이후에 구현 객체(OrderServiceImpl)는 자신의 로직을 실행하는 역할만 담당한다. 구현 객체를 생성하고, 연결하는 제어 흐름은 AppConfig가 가져단다. 이렇듯 프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것을 제어의 역전이라 한다. 프레임워크 vs 라이브러리 프레임워크 : 내가 작성한 코드를 제어하고, 대신 실행 라이브러리 : 내가 작성한 코드가 직접 제어의 흐름을 담당 의존 관계 주입 (DI - Dependency Injection) Ord..
EJB - Enterprise Java Beans 과거 자바 진영 표준 기술 Spring, ORM 등을 가지고 있는 종합 선물 세트. But 높은 비용, 어렵고, 느리고, 복잡하다. 추가로 EJB에 너무 의존적..... 그래서 POJO 등장. 스프링 스프링은 자바 언어 기반의 프레임워크 자바 언어의 가장 큰 특징 - 객체 지향 언어 스프링은 객체 지향 언어가 가진 강력한 특징을 살려내는 프레임워크 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 spring.io/projects Spring | Projects Spring Framework Provides core support for dependency injection, transaction management, web ap..
동작 파라미터화(Behavior Parameterization) 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미한다. 이 코드 블록은 나중에 프로그램에서 호출된다. 즉, 코드 블록의 실행은 나중으로 미뤄진다. 동작 파라미터화를 이용하면 자주 바뀌는 요구사항에 효과적으로 대응할 수 있다. 녹색 사과 필터링 public List filterGreenApples(List inventory) { List result = newArrayList(); for (Apple apple : inventory) { if ("green".equals(apple.getColor())) { result.add(apple); } } return result; } 다른 색상으로 필터링 해달라는 요구사항이 생기는 경우,..