JAVA/Spring 3

[Spring] 스프링 컨테이너 (Spring Container)

스프링 컨테이너 (Spring Container) 스프링 컨테이너는 스프링 빈들을 생성 및 관리하며, 스프링 빈 간의 의존관계 주입을 대신 해 준다. 스프링 컨테이너는 스프링 코드 내에서 ApplicationContext 인터페이스의 구현체로 표현된다. //Configuration 클래스로 스프링 컨테이너 생성 ApplicationContext acConfig = new AnnotationConfigApplicationContext(AppConfig.class); //XML 파일로 스프링 컨테이너 생성 ApplicationContext acXml = new GenericXmlApplicationContext("appconfig.xml"); 다음 예시 코드를 통해 스프링 컨테이너에서 빈이 등록되고 의존관계..

JAVA/Spring 2021.04.01

[Spring] 스프링 빈 (Spring Bean)

스프링 빈 (Spring Bean) 스프링 컨테이너가 관리하는 자바 객체를 우리는 빈(Bean)이라 한다. 빈은 Spring IOC 컨테이너에 의해 인스턴스화, 관리 및 생성되며, 애플리케이션의 핵심을 이루는 객체이다. ※ IOC : 제어의 역전 (Inversion of Control) 빈의 등록 우리는 두 가지 방법으로 빈을 스프링 컨테이너에 등록할 수 있다. 설정 메타 데이터(XML) 사용한 등록 XML을 이용한 방법은 컴파일 없이 빈 설정 정보를 변경할 수 있다는 장점이 있다. XML 설정 파일을 넘기는 데 GenericXmlApplicationContext 를 사용한다. //appConfig.xml 파일을 통해 스프링 컨테이너에 빈 설정 정보 전달 ApplicationContext ac = new..

JAVA/Spring 2021.04.01

[Spring] 의존성 주입 (DI, Dependency Injection)

객체 의존성 (Object Dependency) 한 객체가 다른 객체를 참조하고 있을 때, 의존성을 가진다고 한다. 다음 예시를 보자. class Controller{ private MemoryRepository repository = new MemoryRepository(); } Controller 클래스에서 new 키워드를 이용해 MemoryReopsitory 객체를 생성했다. 이 때, Controller 객체는 MemoryRepository 객체에 의존한다고 한다. 의존성 주입 (Dependency Injection) 위의 의존 관계에는 문제점이 하나 있다. 만약 MemoryRepository 클래스가 수정된다면, Controller 클래스 또한 수정해줘야 하기 때문이다. 즉, 두 클래스의 결합도(..

JAVA/Spring 2021.03.10