728x90
반응형
빠르게 이해하고 현업에 적용이 필요해서 퇴근 후 찍먹해본 스프링 부트
개념은 조금 부족한 상태지만 일단 아래와 같이 구성되는 것 같다
1 프로젝트 구성
나의 테스트 프로젝트는 회원가입을 기준으로 한다
스프링부트의 기본 구성은 아래와 같다
com
└── example
└── demo
├── controller
│ └── UserController.java
├── service
│ └── UserService.java
├── repository
│ └── UserRepository.java
└── model
└── User.java
각 파일의 역할
- controller: 컨트롤러 클래스들이 위치하는 패키지 / 클라이언트의 요청을 받아서 처리하는 역할
- service: 서비스 인터페이스 및 구현 클래스들이 위치하는 패키지 / 비즈니스 로직을 처리하는 역할
- repository: 리포지토리 인터페이스들이 위치하는 패키지 / 데이터베이스와의 상호작용 담당
- model: 애플리케이션에서 사용되는 모델 클래스들이 위치하는 패키지 / 일반적으로 데이터베이스 테이블과 매핑되는 엔터티 클래스들이 여기에 위치
2. 대략적인 파일의 구성
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String phoneNumber;
// Getter와 Setter 메서드
}
모델 클래스 (Entity):
- 회원 정보를 나타내는 객체인 Member 클래스
- Member 클래스에는 이름(name)과 번호(phoneNumber) 필드 포함
- 주로 데이터베이스 테이블과 매핑되는 엔티티 클래스로 사용
public interface MemberRepository extends JpaRepository<Member, Long> {
}
리포지토리 인터페이스:
- Member 객체를 데이터베이스에 저장하고 조회하기 위한 메서드를 포함하는 인터페이스인 MemberRepository
@RestController
@RequestMapping("/members")
public class MemberController {
@Autowired
private MemberService memberService;
@GetMapping
public List<Member> getAllMembers() {
return memberService.getAllMembers();
}
@GetMapping("/{id}")
public Member getMemberById(@PathVariable Long id) {
return memberService.getMemberById(id);
}
@PostMapping
public Member addMember(@RequestBody Member member) {
return memberService.addMember(member);
}
@PutMapping("/{id}")
public Member updateMember(@PathVariable Long id, @RequestBody Member member) {
return memberService.updateMember(id, member);
}
@DeleteMapping("/{id}")
public void deleteMember(@PathVariable Long id) {
memberService.deleteMember(id);
}
}
컨트롤러(Controller):
- 클라이언트의 요청을 받아 해당 요청을 처리하는 역할
- 컨트롤러는 클라이언트와의 HTTP 통신을 처리하고, 서비스로부터 받은 결과를 클라이언트에게 반환
@Service
public class MemberService {
@Autowired
private MemberRepository memberRepository;
public List<Member> getAllMembers() {
return memberRepository.findAll();
}
public Member getMemberById(Long id) {
return memberRepository.findById(id).orElse(null);
}
public Member addMember(Member member) {
return memberRepository.save(member);
}
public Member updateMember(Long id, Member member) {
if (!memberRepository.existsById(id)) {
return null;
}
member.setId(id);
return memberRepository.save(member);
}
public void deleteMember(Long id) {
memberRepository.deleteById(id);
}
}
서비스(Service)
- 비즈니스 로직을 처리하는 역할
- 컨트롤러로부터 받은 요청을 서비스에서 처리하고, 데이터베이스와의 상호작용은 리포지토리를 통해 수행
반응형
'Spring Boot' 카테고리의 다른 글
mac os localhost:8080/login 해결 방법 (0) | 2024.02.17 |
---|---|
mac os port 8080 was already in use 해결 방법 (0) | 2024.02.17 |
댓글