1 minute read

Spring - 1

  • 스프링 프레임워크 시작
  • 스프링 의존성 주입 & 제어 역전



스프링 프레임워크

  • 프레임워크,
    • 기능을 미리 클래스, 인터페이스 등으로 만들어 제공하는 반제품!
    • 개발 생산성과 품질이 보장됨
    • 개발 후 유지보수 및 기능 확장성도 보장
  • 스프링 프레임워크(이하 스프링)
    • 스프링은 자바 WEB APP 개발을 위한 ‘오픈 소스 프레임워크’
    • EJB(Enterprise Java Bean) 보다 가벼운 ‘경량 프레임워크’
  • 스프링 특징
    • 제어 역행(IoC, Inversion of Control)

      : 서블릿, 빈 등을 개발자가 코드에서 생성하는 것이 아닌 프레임워크가 직접 수행

    • 의존성 주입(DI, Dependency Injection)

      : 클래스 객체를, 개발자가 아닌 프레임워크가 생성하여 사용

    • 관점 지향(AOP, Aspect-Oriented Programming)

      : 핵심 기능 외 부가 기능들을 분리 구현하여, 모듈성 증가시키는 방법

    • 영속성과 관련된 서비스 지원
  • 주요 기능
스프링 기능 설명
Core 다른 기능과 설정을 분리하기 위한 IoC 기능 제공
Context 애플리케이션의 각 기능을 담당하는 빈(Bean)에 대한 접근 방법 제공
DAO JDBC 기능을 좀 더 편리하게 사용
ORM 하이버네이트, 마이바티스 등 영속성 관련 프레임워크와 연동된 기능 제공
AOP 관점 지향 기능 제공
Web 웹 애플리케이션 개발에 필요한 기능 제공
WebMVC 스프링에서 MVC 구현에 관련된 기능 제공





스프링 의존성 주입 & 제어 역전 - 1. 의존성 주입

  • 의존성 주입
    • 연관 관계를 개발자가 코딩을 통해 클래스에 부여하는 것이 아닌, 컨테이너가 규정하는 것
    • 코드에서 직접적인 연관 관계가 발생하지 않으므로, 각 클래스들의 변경이 자유로움!
      • = 약한 결합, loosely coupled
      • 강한 결합은, 서로 관련있는 기능들끼리!
  • 의존성 주입 장점
    • 클래스 간의 의존 관계 최소화 => 코드 단순화
    • 객체의 생성, 소멸과 객체간의 의존 관계를 컨테이너가 제어!
  • 의존성 주입 방법
    • 생성자에 의한 주입
    • setter에 의한 주입

dependencyInjectionEx



스프링 의존성 주입 & 제어 역전 - 2. 의존성 주입 실습

  • person.xml
    • <bean>태그
      • PersonServiceImpl 객체(빈) 생성
      • id 속성 = personService로 지정
    • PersonServiceImpl 객체
      • name 속성 = ‘홍길동’으로 초기화

person_xml

  • PersonService.java

PersonService_java

  • PersonServiceImpl.java
    • <value> 태그의 값을 setter를 이용해 설정

PersonServiceImpl_java

  • PersonTest.java
    • 실행 시 person.xml 읽어 와서, 빈 생성
    • id 가 ‘personService’ 인 빈을 가져옴
    • 생성된 빈을 이용해 name 값 출력

      객체를 직접 생성하는 부분 주석처리!

PersonTest_java

  • 참고! 파일트리

fileTree








Spring 과제 - PDF 자료 실습

  • 범위
    • 수업자료 18 ~ 19장
  • 기한: ~6/5(일)

  • 과제 예시
    • 수업자료 참고, 프로젝트 추가 생성

      ex. Spring_pro19_Homework

    • lib 자료 copy
    • xml 파일 복습

      ex. <bean> 요소 변경 or 추가

    • 각 코드 복습

      교재 참고, 예제 추가로 작성








nice!!

Updated: