다양한 관심 :)

Spring - Spring 이란? 본문

프로그래밍 공부/Jsp & Spring

Spring - Spring 이란?

뚜뚜:) 2021. 4. 5. 10:48

Spring?

소규모 어플리케이션 또는 기업용 어플리케이션을 자바로 개발하는데 있어 유용하고 편리한 기능을 제공하는 프레임워크, 오픈소스 경량급 애플리케이션 프레임워크

 

  DI, AOP, MVC, JDBC ( 프로그래밍에 있어 어떤 구조를 만들어 가는 방법론 )등을 지원

 

특징

1. 크기와 부하의 측면에서 경량  :  경량 컨테이너로서 자바 객체를 직접 관리

   객체 생성, 소멸 같은 생명주기 관리, 스프링으로부터 필요한 객체 얻어옴

2. IOC(Inversion of Control)  : 제어권의 역전. 제어권이 스프링 프레임워크에 있음. 개발자가 제어권을 가지지 않음

3. DI(Dependency Injection) : 의존성 주입. 계층이나 서비스 간에 의존선이 존재할 경우 스프링 프레임워크가 서로 연결

4. AOP(Aspect-Oriented Programming) : 관점지향 프로그래밍. 공통적으로 사용하는 기능의 경우 해당 기능을 분리하여 사용

5. POJO(Plain Old Java Object) : 다른 클래스를 상속받아 만들 필요 없는 자바 클래스

6. 영속성과 관련된 다양한 서비스 지원 : iBatis, Hibernate등 데이터베이스 처리 라이브러리와 연결할 수 있는 인터페이스 제공, 확장성이 높음

 

Spring Framework 자바 개발 플랫폼으로 개발자들이 비즈니스 로직에만 집중할 수 있도록 기반 환경을 제공한다.

 

📌 Spring Framework의 탄생 배경

1. Spring이 등장하기 이전 EJB (Enterprise JavaBeans)는 애플리케이션의 업무 로직을 담당하는 자바 표준 기술 문제점 -> EJB등장으로 개발자는 비즈니스 로직에 집중할 수 있는 환경을 갖추었지만, 하나의 기능을 구현하기 위해 클래스 간 상속, 인터페이스의 구현 등 각 클래스 간의 의존도가 커짐

2. EJB의 불편함을 통해 2가지 Open Source가 등장함 (1). 로드 존슨의 J2EE Design and Development 예제코드 -> 지금의 Spring

 

📌 Spring IOC 분류 ★

DI (Dependency Injection) : 스프링컨테이너가 DI조립기(Assembler) 제공 ex) ioc.xml에 boardService에 대한 value와 BoardService, BoardDAO에 대한 관계 정보를 넣는것이 바로 의존성을 주입하는 것 즉, 스프링 설정파일(xml)을 통해 객체간의 의존관계를 설정한다.

DL (Dependency Lookup) : 컨테이너에 설정된 bean을 참조

 

📌 DI(주입) 3가지 방식

  1. Setter 주입 - setter메소드가 존재 (xml, java 설정파일)
  2. 생성자 주입 - 주입받으려는 bean을 인자로 하는 생성자가 존재 (xml, java 설정파일) ★3. 어노테이션 주입 - @Resource , @Autowired, @Inject (xml, java에서 설정가능하나, 잘 드러나지는 않음) . . . 📌 Spring bean객체를 주입 받을 수 있는 조건
  • 주입을 받는 객체로 스프링 bean으로 등록이 되어 있어야 한다.
    (즉, 스프링 컨테이너에서 관리가 되는 객체여야 한다.) ex 1) userService객체에 userDao 스프링 bean을 주입(DI)하려면 userService객체도 스프링 bean이어야 한다. ex 2) userService객체가 스프링 bean이 아니지만, 스프링컨테이너(ApplicationContext)객체를 참조 하고 있으면 DL은 가능하다.



    📌 bean이란?
    컨테이너 안에 들어있는 객체들로써, 컨테이너에 담겨있기 때문에 사용하려면 컨테이너에서 가져와야한다.
    bean의 속성 , 싱글톤(default) , prototype이 존재
  • 디자인패턴 singleton : 특정 클래스의 인스턴스가 메모리상에서 하나만 존재하도록 하는 패턴
  • 스프링 singleton : id당 하나의 객체를 만듬 bean 엘레멘트를 선언시 중복된 class를 사용 가능 동일한 클래스의 객체가 스프링 컨테이너 상에서 여러개 존재하는 것이 가능함 <기억하기> property : 필드라고 생각 (Setter) spring Bean : 인스턴스라고 생각 ref, value-ref : 스프링빈을 주입할 때 사용하는 속성 해당 속성에 들어오는 문자열은 스프링 빈의 이름(id)이어야 한다.

'프로그래밍 공부 > Jsp & Spring' 카테고리의 다른 글

Spring - 인코딩 설정하기  (0) 2021.04.06
Spring - Spring 이란? (추가 정리)  (0) 2021.04.05