[WAS] Spring Framework
Spring framework 란?
Java를 위한 가장 인기있는 어플리케이션 개발 프레임워크입니다.
Advantage
① POJO Based
POJO (Plain old Java object)를 사용한 엔터프라이즈급 어플리케이션 개발
② Modular
모듈화가 되어 있어 패키지와 클래스 수가 많아도 필요한 것만 코딩
③ Web MVC
잘 설계된 웹 MVC framework
④ JDBC, Hibernate, JPA 등 기술을 위한 다양한 템플릿 제공
JdbcTemplate을 사용하면 JDBC 연결 생성, 예외 처리, 트랜잭쳐 커밋, 연결 닫기 등이 없으며 쿼리 실행부분 코드만 작성하면 됨
⑤ LightWeight
메모리와 CPU 리소스가 제한된 컴퓨터에서 응용 프로그램을 개발, 배포에 유용
⑥ Loose Coupling
DI(Dependency Injection)으로 인해 느슨한 결합 지원
⑦ Easy to test
종속성 주입(DI)를 사용하여 쉬운 테스트 기능
⑧ Transaction management
Spring은 축소와 확장할 수 있는 일관된 트랜잭션 관리 인터페이스 제공
Spring framework에서 사용하는 Container를 살펴보겠습니다.
↓↓↓ IoC container ↓↓↓
IoC(Inversion of Control - 제어의 역전)
객체의 생성부터 소멸까지 생명주기를 개발자가 아니라 컨테이너가 대신 관리
IoC Container = Bean Container + 의존 객체 자동 주입(DI)
Spring Container
• Spring gramework 핵심
• Spring framework의 초기화 역할 담당
• 컨테이너의 역할은 객체 생성, 연결, 구성, 전체 수명주기 관리
• 컨테이너는 POJO 클래스와 메타 데이터 사용하여 구성, 어플리케이션 실행
Java POJO & Meta data
↓
Spring IoC Container
↓
Ready to use application
Annotation
• @Controller (Presentation layer)
- 웹 요청과 응답을 처리하는 클래스
• @Service (Service layer)
- 비즈니스 로직을 가지는 클래스
• @Repository (Persistence layer)
- 파일이나 데이터베이스를 처리하는 클래스(DAO)
• @Component
- Spring이 Bean으로 등록하는 가장 기본적인 annotation
- 기본 생성자가 반드시 필요한 annotation
• @Autowired
- 생성자, 멤버함수, 멤버변수 위에 설정
- Spring container는 Bean으로 생성된 객체 중 같은 타입의 객체를 찾아 멤버변수에 자동 주입
- @inject로 대체가 가능
◡̈