블로그 이미지
머드초보
개발자는 끊임없이 노력하지 않으면 아니된다. 라는 모티브를 가지고!

calendar

1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

Notice

Tag

    'Spring'에 해당되는 글 2

    1. 2010.07.31 스프링 DI 관련 요약
    2. 2008.12.15 Spring 2.5 를 시작하며..
    2010. 7. 31. 14:53 Spring
    스프링 컨테이너
    빈 설정 : 생성자 방식/프로퍼티 설정 방식, 자동설정
    라이프 사이클
    외부 설정 프로퍼티, 메시지 국제화, 이벤트
    어노테이션 기반 설정
    컴포넌트 스캔

    1. 스프링 컨테이너
    스프링은 객체를 관리하는 컨테이너를 제공! (BeanFactory / ApplicationContext)
    BeanFactory : org.springframework.beans/factory.BeanFactory 인터페이스는 빈객체를 관리하고 각 빈 객체 간의 의존 관계를 설정해 주는 기능을 제공하는 가장 단순한 컨테이너
    XmlBeanFactory 클래스는 외부 자원으로부터 설정 정보를 읽어와 빈 객체를 생성한다.
    XmlBeanFactory 객체 생성 후 gerBean() 메서드를 이용하여 알맞은 빈을 가져와 사용함.

    org.springframework.context.support.ClassPathXmlApplicationContext :
    =>클래스 패스에 위치한 XML 파일로부터 설정 정보를 로딩한다.
    org.springframework.context.support.FileSystemXmlApplicationContext :
    => 파일 시스템에 위치한 XML 파일로부터 설정 정보를 로딩한다.
    org.springframework.web.context.support.XmlApplicationContext :
    => 웹 어플리케이션에 위치한 XML 파일로부터 설정 정보를 로딩한다.

    2. 빈(bean) 생성과 의존 관계 설정
    스프링 컨테이너가 관리할 빈 객체를 생성하기 위해서는 <bean> 태그를 사용하면 된다
    -생성자 방식
    <constructor-arg>태그를 명시 하지 않았다면, 스프링은 파라메터가 없는 기본 생성자를 이용하여 객체를 생성한다. 생성자가 아닌 static 매서드를 이용하여 객체를 생성해야하는 경우는 factory-method=getInstance()메서드를 이용하면 됨.
    - 프로퍼티 설정 방식
    <property name="" ref=""> 또는 <property name="" value="">
    - XML 네임스페이스를 이용한 프로퍼티 설정
    xmlns: test=http://www.springframework.org/schema/test 로 설정하고 test:periodTime="10" test:sender-ref="" 이런식으로도 설정 가능
    생성자 방식은 <consturctor-arg> 태그를 이용하여 의존하는 객체를 전달 가능. 
    posted by 알 수 없는 사용자
    2008. 12. 15. 10:18 Spring
    EJB가 나타나면서 자바는 엔터프라이즈 어플리케이션을 구축하는 데 필요한 기본 기술로 자리 잡아 나갔다. 하지만 EJB2 버전까지는 개발 과정이 편하지 않았다.
    엔터프라이즈 어플리케이션을 구현하는데 필요한 부분은 자원 관리와 트랜잭션의 처리 정도이다. EBJ는 반드시 EJB 스펙에서 정의된 인터페이스에 따라 코드를 작성하도록 제약하고 있기 때문에 개발자가 기존에 작성한 POJO(Plain Old Java Object)를 변경해야 한다는 단점도 갖고 있었다.
    컨테이너 없이 테스트가 어렵다는 점을 개발 속도가 저하되는 부분을 많은 개발자들이 개발을 진행하는데 있어 불편을 겪는 부분이었다.
    이런 시점에서 Pod Johnson은 "Expert One-on-One J2EE Development without EBJ"란 책을 통해서 책 제목처럼 EJB를 사용하지 않고 엔터프라이즈 어플리케이션을 개발하는 방법을 소개하였고, 이것이 스프링 프레임워크의 모태가 되었다.

    1. 스프링이란 무엇인가?
    스프링이란 간단히 말해서 엔터프라이즈 어플리케이션에서 필요로 하는 기능을 제공하는 프레임워크다. 스프링은 J2EE가 제공하는 다양한 기능 제공뿐 아니라 DI / AOP 를 지원한다
    특징
    - 스프링은 경량 컨테이너다.
    - 스프링은 DI(Dependency Injection) 패턴을 지원한다.
    - 스프링은 AOP(Aspect Oriented Programming)을 지원한다.
    - 스프링은 POJO(Plain Old Java Object)를 지원한다.
    - 트랜잭션 처리를 위한 일관된 방법을 제공한다.
    - 영속성과 관련된 다양한 API를 지원한다. (ex :JDBC/iBatis/하이버네이트/JPA/JDO 등)
    - 다양한 API에 대한 연동을 지원한다.
    - 다른 프레임워크와 연동을 지원하고 있다.

    2. DI(Dependency injection)란 무엇인가?
    객체 사이의 의존 관계를 객체 자신이 아닌 외부 조립기가 수행한다는 개념.
    - 클라이언트 요청 관련 Control 객체
    - 비즈니스 로직을 수행하는 서비스 객체
    - 데이터베이스 접근을 수행하는 DAO 객체
    ~ 명시적으로 객체에 의존성을 -> Factory Patten 으로  :: 둘다 변경사항 적용이 불편
      그리하여 DI 로 의존성 관련 된 사항은 외부 조립기에 맡겨버림!
     
    3. AOP(Aspect Oriented Programming)란 무엇인가?
    여러 모듈에 효과적으로 적용하는데는 한계가 있으며, 이러 한계를 극복하기 위해 AOP라는 기법이 존재한다. 즉 공통의 관심 사항을 적용해서 발생하는 의존 관계의 복잡성과 코드 중복을 해소해주는 프로그래밍 기법.
    즉 핵심 로직 구현 클래스에 의존하지 않고 공통사항만을 적용하여 여러 클래스에서 사용 가능하게 하는 것이다.

    * EJB의 3 버전부터는 엔티티 빈이 아닌 JPA(Java Persistence API)를 사용하는 데이터의 영속성을 처리하고 있다. JPA는 EJB 컨테이너가 없는 환경에서도 사용할 수 있기 때문에, EJB 이외의 환경에서도 JPA를 사용하여 영속성을 관리할 수 있다.

    * Automatic Storage Management (ASM)]
    플랫폼 독립적인 환경에서 파일시스템, 놀리적 볼륨관리자, 소프트웨어 RAID 등의 서비스를 제공합니다. ( 오라클 관련 라이브러리 인듯 함 )
    posted by 알 수 없는 사용자
    prev 1 next