소소한개발팁
반응형

Portable Service Abstraction, DI, AOP, POJO

 

Portable Service Abstraction (서비스 추상화)

트랜잭션 추상화, OXM추상화, 데이터 액세스의 Exception 변환 기능 등 기술적인 복잡함은 추상화를 통해 Low Level의 기술 구현 부분과 기술을 사용하는 인터페이스로 분리한다.

 

객체지향과 DI(Dependency Injection) 의존관계 주입

Spring은 객체지향에 충실한 설계가 가능하도록 단순한 객체 형태로 개발할 수 있고, DI는 유연하게 확장 가능한 객체를 만들어 두고 그 관계는 외부에서 다이내믹하게 설정해준다.

 

AOP(Aspect Oriented Programming)

AOP는 애플리케이션 로직을 담당하는 코드에 남아 있는 기술 관련 코드를 분리해서 별도의 모듈로 관리하게 해주는 기술

 

POJO(Plain Old Java Object)

POJO는 객체지향 원리에 충실하면서 , 특정 환경이나 규약에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 객체이다.

 

Spring FrameWork 특징

 

01. 컨테이너 역할

Spring 컨테이너는 Java객체의 LifeCycle을 관리하며, Spring 컨테이너로 부터 필요한 객체를 가져와 사용할 수 있다.

 

02.DI(Dependency Injection)지원

Spring은 설정 파일이나 어노테이션을 통해서 객체 간의 의존관계를 설정할 수 있도록 하고 있다.

 

03.AOP(Asepect Oriented Programming)지원

Spring은 트랜잭션이나 로깅,보안과 같이 공통적으로 필요로 하는 모듈들을 실제 핵심 모듈에서 분리해서 적용할 수 있다.

 

04.POJO(Plain old Java Object)지원

Spring 컨테이너에 저장되는 Java객체는 특정한 인터페이스를 구현하거나,특정 클래스를 상속받지 않아도 된다.

 

05.트랜잭션 처리를 위한 일관된 방법을 지원

JDBC,JTA 등 어떤 트랜잭션을 사용하던 설정을 통해 정보를 관리하므로 트랜잭션 구현에 상관없이 동일한 코드 사용가능

 

06.영속성(Persistence)과 관련된 다양한 API지원

eSpring은 MyBatis,Hibernate 등 데이터베이스 처리를 위한 ORM(Object Relational Mapping)프레임워크들과의 연동을 지원

 

Spring Framework 기능요소

 

1.Spring Core 

Spring Framework 의 기본기능을 제공한다.

이 모듈에 있는 BeanFactory는 Spring의 기본 컨테이너면서 스프링 DI의 기반이다.

 

2.Spring AOP

AOP 모듈을 통해 Asepect 지향 프로그래밍을 지원한다.

AOP 모듈은 스프링 애플리케이션에서 Asepect를 개발할 수 있는 기반을 지원한다.

 

3.Spring ORM

MyBatis,Hibernate,JPA 등 널리 사용되는 ORM 프레임워크와의 연결고리를 제공한다.

ORM 제품들을 Spring의 기능과 조합해서 사용할 수 있도록 해준다.

 

4.Spring DAO

JDBC에 대한 추상화 계층으로 JDBC코딩이나 예외처리 하는 부분을 간편화 시켰으며,AOP 모듈을 이용해 트랜잭션 관리 서비스 제공

 

5.Spring Web

일반적인 웹어플리케이션 개발에 필요한 기본기능을 제공한다.

Webwork나 Struts와 같은 다른 웹어플리케이션 프레임워크와의 통합을 지원한다.

 

6.Spring Context

Context 모듈은 BeanFactory의 개념을 확장한 것으로 국제화(I18N)메시지, 애플리케이션 생명주기 이벤트, 유효성 검증 등을 지원한다.

 

7.Spring Web MVC(Model,View,Controller)

사용자 인터페이스가 애플리케이션 로직과 분리되는 웹 어플리케이션을 만드는 경우에 일반적으로 사용되는 패러다임이다.

 

 

반응형

'프레임워크 > Spring' 카테고리의 다른 글

JUnit , Sprint Test  (0) 2020.01.03
STS(SpringSource Tool Suite)  (0) 2019.12.24
Spring - MyBatis 와 스프링 연동  (0) 2019.12.19
스프링 - 오라클 데이터 베이스와의 연결  (0) 2019.12.19
스프링의 의존성 주입  (0) 2019.12.19
profile

소소한개발팁

@개발자 뱅

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!