Spring

Spring Service, Controller의 차이점

YunSeong 2024. 7. 30. 16:48
728x90
반응형

@Service

위 애너테이션은 서비스 계층의 컴포넌트를 정의한다.

서비스 계층은 비즈니스 로직을 처리하고, 데이터 액세스 계층과 컴트롤러 계층을 중간에서 연결해준다.

1
2
3
4
5
6
7
8
9
10
11
12
13
@Service
public class UserService {
 
    @Autowired
    private UserRepository userRepository;
 
    public User findUserById(Long id) {
        return userRepository.findById(id).orElse(null);
    }
 
    // 기타 비즈니스 로직
}
 
cs

 

@Controller

위 애너테이션은 웹 계층의 컴포넌트를 정의한다.

http 요청을 처리하고, 적절한 뷰로 응답을 생성하는 역할을 한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Controller
public class UserController {
 
    @Autowired
    private UserService userService;
 
    @GetMapping("/user/{id}")
    public String getUser(@PathVariable Long id, Model model) {
        User user = userService.findUserById(id);
        model.addAttribute("user", user);
        return "userProfile"// userProfile.html 뷰를 반환
    }
 
    // 기타 HTTP 요청 처리 메서드
}
 
cs

 

Service를 사용하는 이유는 여러 컴트롤러나 다른 서비스의 로직을 재사용할 수 있고, 

로직을 중앙화하여 관리해서 유지보수가 쉬워지기 때문이다.

728x90
반응형

'Spring' 카테고리의 다른 글

Spring JPA의 Entity란?  (0) 2024.08.01
JPA 쿼리 메서드  (0) 2024.07.30
Java Package와 Directory의 차이점  (0) 2024.07.30
Thymeleaf란?  (0) 2024.07.30
Lombok이란?  (0) 2024.07.29