Spring의 특징과 의존성 주입
Spring framework의 강점은 개발에 필요한 구조를 미리 코드로 만들어 놓았기 때문에
초보자여도 충분히 조립하여 개발을 진행할 수 있습니다. 또한 개발시간도 단축이 되구요.
스프링은 경량 프레임워크입니다. 즉 특정 기능을 위주로 간단한 jar 파일을 이용하여 모든 개발이 가능하도록 구성한
프레임워크입니다.
다른 프레임워크들과의 차별성
- 복잡함에 반기를 들어서 만들어졌다.!!
- 앞서 말한 경량 프레임워크!!
- 프로젝트 전체 구조를 설계할 때 유용하다.
- 개발자의 역량에 맡기는 경우가 아닌 어느 분야에 집중하는 것이 아니라 전체적으로 설계하는 용도!!
- 즉 OOP 구조 ( 의존성 주입)
- 다른 프레임워크들의 포용(공존)
- 위에서 말한 전체 구조에 집중하여 다른 프레임워크와 공존한다.!!
- 따라서 다른 프레임워크들 과의 공존을 위해 최소한의 수정이 가능!!
- 개발 생산성과 개발 도구 지원
- XML 지원으로 간편
- 플러그인 업데이트 간편
- STS, Eclipse, Intellij 모두 가능
스프링의 주요 특징
- POJO 기반
- 경량이지만 내부에 객체간 관계를 맺을 수 있는 특징
- 관계를 맺을 시 별도의 API를 사용하지 않음
- JAVA 코드를 이용해서 객체 생성하고 그대로 스프링에서 사용 가능하다는 말!!
- 개발자가 특정 라이브러리, 컨테이너 기술에 종속적이지 않다는 것
- 의존성 주입
- 의존성이란 하나의 객체가 다른 객체 없이 제대로 된 역할을 수행할 수 없다는 것
- 주입은 말 그대로 밀어 넣는 것
- 즉 어떤 객체가 필요로하는 객체를 외부에서 밀어넣어준다.
- 따라서 주입 받는 입장에서 커다란 신경쓸 필요가 없다.
- A라는 객체가 B라는 객체가 필요하다라는 신호를 전송 ==> B객체를 외부에서 주입
- 이를 ApplicationContext가 수행하고 관리(bean)
- AOP 지원
- 개발자가 비지니스 로직에만 집중하게 한다.
- 반복적인 코드의 제거
- 로그, 트랜잭션 처리, 보안
- Aspect J 문법 사용
- 편리한 MVC 구조
- WAS의 종속적이지 않은 개발환경
- 트랜잭션 지원
- 데이터베이스 작업 시 업무가 여러 작업으로 이루어질 때 쉽게 트랜잭션을 처리해준다.
스프링 동작 과정
- Spring Framework 실행 시 스프링이 메모리 영역을 생성(Context). ==> ApplicationContext 생성
- 스프링이 객체 생성 관리하는 root-context.xml에서 <context:component-scan> 태그로 패키지 스캔
- @Component이 존재하는 클래스의 인스턴스를 생성
- 식당은 주방장을 필요로 하기 때문에 식당에 주방장을 의존 주입(@Autowired)
'웹 > Spring' 카테고리의 다른 글
Spring 이론(재) - controller (0) | 2019.07.20 |
---|---|
Spring 이론(재) - MVC구조 (0) | 2019.07.18 |
Spring 이론(재) - 간단히 spring project 생성 (0) | 2019.07.17 |
CKEditor 버전 문제 해결 (0) | 2019.06.25 |
웹 시큐리티(Web Security)-5Day (0) | 2019.05.28 |