스프링부트 구조 이해하기

공부기록·2023년 10월 31일
0
post-thumbnail

구조


  • 컨트롤러 (프레젠테이션 계층)

    • HTTP 요청을 받고 비즈니스 계층으로 전송한다.
  • 서비스 (비즈니스 계층)

    • 데이터를 처리하기위한 로직 등을 구현한다.
  • 리포지토리 (퍼시스턴스 계층)

    • 데이터베이스 관련 로직을 처리하고 DAO객체를 이용한다.



계층 만들기


TestController

@RestController
public class TestController {
	@Autowired // TestService 빈 주입
    TestService testService;
    
    @GetMapping("/test")
    public List<Member> getAllMembers() {
    	List<Member> members = testService.getAllMembers();
        return members;
    }
}

TestService

@Service
public class TestService {
	@Autowired
    MemberRepository memberRepository; //빈 주입
    
    public List<Member> getAllMembers() {
    	return memberRepository.findAll();
    }
}

Member

@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
@Getter
@Entity
public class Member {
	@Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id", updatable = false)
    private Long id;
    
    @Column(name = "name", nullable = false)
    private String name;
}

MemberRepository

@Repository
public interface MemberRepository extends JpaRepository<Member, Long> { }



build.gradle


  • 스프링부트용 JPA
    • spring-boot-starter-data-jpa
  • H2
    • 로컬환경과 테스트환경에서 사용할 인메모리 데이터베이스
  • 롬복
    • 반복메서드 작성을 줄여줌

0개의 댓글

관련 채용 정보