-
[Spring] 스프링 프레임워크 : DI (의존성 주입) / Spring Tools 3 설치º Server º/Spring 2023. 6. 27. 23:28
스프링의 기초
- 프레임워크란?
- → 무엇(어플리케이션)을 만들기 위한 구조(뼈대)를 말합니다.
- → 또, 우리나라의 공공프로젝트의 경우 ‘전자정부 표준 프레임워크 ‘ 환경에서 개발해야하는데 전자정부 프레임워크에 스프링이 채택되었습니다.
- → 즉, 자바 기반의 어플리케이션 개발을 용이하게 하는 구조 중 가장 인기 있는 구조가 ‘스프링’입니다.
- 스프링 프레임워크 특징
- DI (Dependency Injection) : 의존성 주입
→ 자바로 만들어진 소프트웨어 속을 들여다보면 수많은 클래스들로 구성되어있습니다.
그 클래스들을 사용하기 위해서는 new연산자에 의하여 객체를 생성한 후 사용할 수 있어요.
또, 클래스와 클래스 사이에는 is a 관계 혹은 has a 관계가 있을 수 있어요.
만약, A,B 두개의 클래스가 has a 관계에 있다고 합시다. B클래스에서 A클래스를 사용한다고 할 때 처음 우리의 고객이 요청한대로 A클래스를 만들고 B를 만들고 있는 중에 혹은 서비스 중에 A대신에 K로 만들어 주세요! 라는 요청이 있다면, new A()라고 되어있는 코드를 일일이 new K()로 수정해야 할 것입니다.
만약 new A() 가 사용된 부분이 B뿐 아니라 수십개의 다른 클래스에서도 사용되었다면 일일이 수정하는 것은 번거로운 일이며 미처 수정되지 않은 부분이 있을 수 있습니다.
이와 같은 두개의 클래스(객체) 가 의존관계에 있을 때 수정이 요청될 것 같은 객체에 대한 생성을 자바 소스 코드 내에서 직접 new 연산자로 생성하지 않고 스프링(환경설정)이 대신 두 객체의 관계를 느슨하게 하여 설정하는 방식을 스프링의 “DI (의존성 주입) ”라고 합니다.
두 객체의 관계를 느슨하게 설정하기 위해 Spring으로 설정 파일을 생성 - XML파일을 손쉽게 만들어주는 플러그인 설치방법
1. 이클립스 → help → Spring 검색 → Spring Tools 3 설치
Spring Tools 3 설치 2. Spring IDE Core 체크
Spring IDE Core 체크 3. install할 때 뜨는 창에서 select all 하고 다운완료 → restart → Spring 설치완료
4. Spring Bean configuration File → beans.xml 생성 (객체 생성을 위한 new연산자를 대신하는 태그)
// beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 수정을 요구할 것같은 객체를 해당 파일에 작성해놓습니다. --> <bean id="mb" class="exam03.MessageBeanEn"/> </beans>
5. 실행해보기
인터페이스 생성
public interface MessageBean2 { public void sayHello(String name); }
클래스 생성
// MessageBeanEn.java public class MessageBeanEn implements MessageBean2 { @Override public void sayHello(String name) { System.out.println("Hello, "+name); } }
//MessageBeanJP.java public class MessageBeanJP implements MessageBean2 { @Override public void sayHello(String name) { System.out.println("こんにちは, "+name); } }
메인 실행 클래스에서 beans.xml 불러오기
// HelloApp.java import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.FileSystemResource; import org.springframework.core.io.Resource; public class HelloApp { public static void main(String[] args) { try { Resource resource = new FileSystemResource("beans.xml"); BeanFactory factory = new XmlBeanFactory(resource); // 이후 요구에 의해 객체를 바꿀 수 있도록 interface 부모 클래스(MessageBean2)로 해당 객체를 사용합니다. MessageBean2 mb = (MessageBean2)factory.getBean("mb"); mb.sayHello("예인"); } catch (Exception e) { System.out.println("예외발생: "+e.getMessage()); } } }
→ DI를 이용하는 목적 : 수정이 빈번할 것 같은 객체를 스프링 환경설정이 관리하도록 하여 유지보수를 쉽게 하도록 합니다.
'º Server º > Spring' 카테고리의 다른 글
[Spring] 스프링 프레임워크 : STS에서 JSP 사용하기 (0) 2023.07.08 [Spring] 스프링 프레임워크 : 스프링 툴 스위트 (STS) 설치 (0) 2023.07.07