고고뜌지입니다.
JAVA Spring 의 구조에 대해 포스팅 하겠습니다.
현재 저희 회사에서 사용중인 회사 기준으로 작성합니다.
1. Spring 구조
1) 순서 : Controller - Service - Dao -DB
2) 상세 처리 순서
- 클라이언트가 Request 요청을 하면 DispatcherServlet이 요청을 가로챔
( 모든 요청 가로채지않고 web.sml 만 가로챔)
- DispatcherServlet이 가로챈 요청을 HandlerMapping에게 보내어 처리할 수 있는 Controller을 찾음
- 실제 로직 처리 (Controller - Service - DAO - DB - DAO - Service - Controller )
- View REsolver 를 통해 view 화면을 찾고 클라이언트에게 전송
2. MVC 패턴
1) Controller
- 클라이언트에서 요청이 들어올 때, 해당 요청을 수행할 비즈니스 로직을 제어하는 객체
- 화면에서 넘어노는 매개변수들을 이용해 service 객체를 호출하는 역할
- @GepMapping, @RequestMapping 로 제어
예) @RequestMapping("/Hello" )
- HTTP 프로토콜의 구분된것으로 값을할당 받어 로직을 처리함
2) Service
- servicelmple 이라는 구현객체를 생성한다.
- 로직 처리 : service (인터페이스) - servicelmple - DAO
- Service : 인터페이스 역할 임
- Servicelmple : service를 통해 접근하며, 실제적인 DAO 접근을 함
3) DAO
- DAO : Data Access Object
- DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 객체
- DAO 사용 이유는 효율적인 커넥션 관리와 보안성
- Database의 data에 acess하는 트랜잭션의 객체
- Domain Logic (도메인 로직 : 비드니스 로직이나 db와 관련없는 코드) 을 persistence mecahnism과 분리하기
위해 사용함
* persistence layer : CRUD (Create, Read, Update, Drop) 하는 계층
4) Mybatis
- 자바 오브젝트와 SQL 사이의 자동 매핑 기능을 지원하는 ORM (Object Relational Mapping) 프레임워크
- Sql을 별도의 파일로 분리해서 관리함
- 특징
* 쉬운 접근성과 코드의 간결함
* Sql문과 프로그래밍 코드의 분리
* 다양한 프로그래밍 언어로 구현 가능 (Java, C#, .NET 등 )
- DAO에서 Mybatis를 사용함
참조 블로그
- 행복회로
'JAVA > - Useful Code' 카테고리의 다른 글
[코테용] JAVA 자주 사용하는 문법 (0) | 2024.10.21 |
---|---|
Websocket 구현 (0) | 2024.08.03 |
JAVA에서 JDBC로 조회시 쿼리문은 빠른데 실제 속도가 느린경우 (1) | 2021.11.18 |
다음주소찾기 API (0) | 2021.07.08 |
댓글