컨트롤러 (프레젠테이션 계층)
서비스 (비즈니스 계층)
리포지토리 (퍼시스턴스 계층)
@RestController
public class TestController {
@Autowired // TestService 빈 주입
TestService testService;
@GetMapping("/test")
public List<Member> getAllMembers() {
List<Member> members = testService.getAllMembers();
return members;
}
}
@Service
public class TestService {
@Autowired
MemberRepository memberRepository; //빈 주입
public List<Member> getAllMembers() {
return memberRepository.findAll();
}
}
@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;
}
@Repository
public interface MemberRepository extends JpaRepository<Member, Long> { }