Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Github
- git
- ChatGPT
- rnn
- OSS
- Python
- KAKAO
- Rocky Linux
- LINUX MASTER
- GoogleDrive
- 국가과제
- 인터넷의이해
- Kubernetes
- 크롤링 개발
- Spring
- 코딩도장
- Resnet
- Database
- API
- VSCode
- Machine Learning
- 고등학생 대상
- Spring Boot
- Docker
- C언어
- colab
- ICT멘토링
- Powershell
- cloud
- suricata
Archives
- Today
- Total
코딩두의 포트폴리오
서비스 계층 설정 본문
디렉토리 구조
demo
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── demo
│ │ │ ├── controller
│ │ │ │ └── TouristSpotController.java
│ │ │ ├── entity
│ │ │ │ └── TouristSpot.java
│ │ │ ├── repository
│ │ │ │ └── TouristSpotRepository.java
│ │ │ └── service
│ │ │ ├── TouristSpotService.java
│ │ │ └── TouristSpotServiceImpl.java
│ └── resources
│ └── application.properties
└── pom.xml
서비스 계층
비즈니스 로직 캡슐화
컨트롤러, 데이터 액세스 계층(리포지토리) 간 중개 역할
-> TouristSpot 엔티티를 다루는 서비스 계층 구현
서비스 인터페이스
비즈니스 로직을 정의하는 메소드 선언
package com.example.demo.service;
import java.util.List;
import com.example.demo.entity.TouristSpot;
public interface TouristSpotService {
List<TouristSpot> findAll();
TouristSpot findById(Long id);
TouristSpot save(TouristSpot touristSpot);
void deleteById(Long id);
}
- findAll(): 모든 관광지 정보를 조회
- findById(Long id): 특정 ID의 관광지 정보를 조회
- save(TouristSpot touristSpot): 새로운 관광지 정보를 저장하거나 기존 정보를 업데이트
- deleteById(Long id): 특정 ID의 관광지 정보를 삭제
서비스 구현
서비스 인터페이스 구현, 실제 비즈니스 로직 수행
리포지토리 계층 호출 -> DB와의 상호작용
package com.example.demo.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import com.example.demo.entity.TouristSpot;
import com.example.demo.repository.TouristSpotRepository;
@Service
public class TouristSpotServiceImpl implements TouristSpotService {
@Autowired
private TouristSpotRepository touristSpotRepository;
@Override
public List<TouristSpot> findAll() {
return touristSpotRepository.findAll();
}
@Override
public TouristSpot findById(Long id) {
return touristSpotRepository.findById(id).orElse(null);
}
@Override
public TouristSpot save(TouristSpot touristSpot) {
return touristSpotRepository.save(touristSpot);
}
@Override
public void deleteById(Long id) {
touristSpotRepository.deleteById(id);
}
}
- TouristSpotServiceImpl 클래스는 TouristSpotService 인터페이스를 구현
- @Service 어노테이션을 사용하여 스프링이 이 클래스를 서비스 빈으로 인식
- TouristSpotRepository를 @Autowired로 주입받아 데이터베이스 연산
- 각 메서드는 리포지토리 계층을 호출하여 실제 데이터베이스 연산
'2024 Tourism Data Utilization Contest > Spring Boot' 카테고리의 다른 글
데이터 로더 (0) | 2024.06.20 |
---|---|
설정 파일 (0) | 2024.06.20 |
컨트롤러 (0) | 2024.06.20 |
스프링부트 프로젝트 생성 (0) | 2024.06.20 |
스프링부트 초기 환경설정 (0) | 2024.06.20 |