Web Application Server (WAS)

[WAS] Spring Framework

YEJI ⍢ 2022. 11. 30. 00:14
728x90

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로 대체가 가능

 

 

 

◡̈