일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- system
- web
- computer
- MacOS
- Java
- MIPS
- php
- github
- DB
- control
- DS
- data structure
- instruction
- Linux
- CSS
- react
- architecture
- while
- Class
- DoM
- mysql
- function
- DATAPATH
- html
- python
- Pipelining
- javascript
- for
- Algorithm
- XML
- Today
- Total
YYYEJI
[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로 대체가 가능
◡̈
'Web Application Server (WAS)' 카테고리의 다른 글
[WAS] IntelliJ에서 Spring 배포하기 (0) | 2022.12.02 |
---|---|
[WAS] IntelliJ로 Spring tool 사용하기 (0) | 2022.11.30 |
[WAS] JSP Model Architecture (0) | 2022.11.29 |
[MacOS] MySQL connecter(Maven 라이브러리) 연결하기 (0) | 2022.11.15 |
[MacOS] db4free로 DB 이용하기 (0) | 2022.11.15 |