spring (controller,service,repository)

2022. 5. 26. 16:41·Stack/Spring

Controller, Service, Repository 가 무엇인가요?

3개를 통틀어 3계층이라고도 합니다 스프링의 척추이며 느슨한 결합의 대표적인 예시입니다

Repository 디비접근

 

public interface MemoRepository extends JpaRepository<com.sparta.springassign.domain.Memo, Long> {

entity 로 생성한 db에 접근하는 매서드들을 사용하는 인터페이스입니다

memorepository라는 인터페이스를 만들어주고 jpa리포지토리를 상속시켜줍니다 

<> 안에 entity 클래스명과 자료형을 넣어주면됩니다

Service 

  1. Client가 Request를 보낸다.(Ajax, Axios, fetch등..)
  2. Request URL에 알맞은 Controller가 수신 받는다. (@Controller , @RestController)
  3. Controller 는 넘어온 요청을 처리하기 위해 Service 를 호출한다.(서비스에서 선언한 클래스이용)
  4. Service는 알맞은 정보를 가공하여 Controller에게 데이터를 넘긴다.(서비스 클래스에서 업데이트를 진행하고/ 리턴값인 id를 돌려주기)
  5. Controller 는 Service 의 결과물을 Client 에게 전달해준다.(과제에서는 전달을 다시받지않고 디비로 보냈습니다)

서비스의 진행과정입니다.

위과정을 통해 컨트롤러에서 받은 요청을 수행하는 파트라고 보면됩니다

 

@Controller 서비스와 리포지토리의 중간역할/자동응답기로 이해를 하면됩니다

클라이언트에서 사용자의 요청이 진입하는 지점이며, 요청내용을 service에 넘겨줍니다.
서비스의 규모가 클경우 그것을 controller에서 나눠서 각각의 서비스에 연결해주면 
개발단계에서는 중복작업으로인한 문제를 막고,

유지보수에서는 필요한 부분만작업할수있게됩니다. 이번주차 개인과제에서는 Rest controller를 이용해봤습니다

 

 

'Stack > Spring' 카테고리의 다른 글

DI 와 Ioc의 원리와 사용법  (0) 2022.05.29
MVC 패턴,Controller & Servicec & Repository 개념  (0) 2022.05.28
<aside> restAPI의 put 과 patch 는 어떤 차이점이 있을까요? 어떤 경우에 사용하면 좋을까요?</aside>  (0) 2022.05.26
스프링 학습 2주차  (0) 2022.05.22
스프링 학습 1주차  (0) 2022.05.20
'Stack/Spring' 카테고리의 다른 글
  • MVC 패턴,Controller & Servicec & Repository 개념
  • <aside> restAPI의 put 과 patch 는 어떤 차이점이 있을까요? 어떤 경우에 사용하면 좋을까요?</aside>
  • 스프링 학습 2주차
  • 스프링 학습 1주차
김코딩개발자
김코딩개발자
  • 김코딩개발자
    김코딩의 개발로그
    김코딩개발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (69)
      • 개발이야기 (19)
        • 개발로그 (7)
        • 항해일지 (11)
      • Develop (0)
      • Life (0)
      • Stack (29)
        • C++ (6)
        • Ext.js (1)
        • Spring (18)
        • Java (2)
        • JavaScript (2)
      • TechTrend (0)
      • TechKnowledge (20)
        • CS관련지식 (9)
        • 알고리즘 (9)
        • 네트워크 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    대규모 트래픽
    software docs
    지연수치표
    관점지향프로그래밍
    프로그래머스 LV2
    DB원리
    올바른 괄호
    서비스 경험
    ip통신
    프로그래머스
    자바스크립트입문
    직장인
    개발 문서 작성방법
    개발입문
    동시성제어
    osi 2계층
    lan 통신
    응답지연값
    괄호 회전하기
    개발 설계 문서
    데이터 마이그레이션
    SpringBoot DB
    서비스경험
    프로그래머스 멀리뛰기
    네트워크
    괄호문제
    데이터 용량단위
    동적계획법
    개발일기
    시간복잡도
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
김코딩개발자
spring (controller,service,repository)
상단으로

티스토리툴바