일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- error
- 스프링
- git
- spring error
- react simple captcha
- CI
- 스프링 시큐리티 로그인
- react 자동입력방지
- 에러
- 젠킨스
- Spring Security
- Security 로그인
- 깃
- myBatis
- react 심플캡차
- Docker
- maven
- jpa
- ChatGPT
- build
- SpringBoot
- spring security 로그인
- 리액트 심플캡차
- 스프링 시큐리티
- 리액트 캡차
- REACT
- react captcha
- Spring Boot
- react 캡차
- react 상태
- Today
- Total
I can do it(Feat. DEV)
Spring MVC @ControllerAdvice 활용하기 본문
다른 프로젝트에서 @ControllerAdvice라는 어노테이션을 발견함.
갓글에 검색해보니 보편적으로 패키지로 범위를 지정하여 전역 컨트롤러를 만듦으로써,
예외 처리를 적용시킬 때 사용하는 것 같음.
필자는 예외 처리 말고 또 다른 사용법 중 하나인 @ModelAttribute를 이용하여
다른 컨트롤러에서 뿌려주는 화면 단에서 모델 정보를 사용할 예정임.
먼저 ControllderAdvice 클래스를 만들어야 함.
//JPA, Spring Boot 사용
@ControllerAdvice(basePackages = {"com.exam.controller.user"}) //패키지 설정
public class UserControllerAdvice {
@Autowired
private BoardRepository boardRepository; //게시판 repository 의존성 주입
@ModelAttribute("boardList") //@ModelAttribute로 게시판 목록을 모델 정보에 등록
public List<Board> getBoardList(){
List<Board> boardList = boardRepository.findAll();
return boardList;
}
}
필자는 user 패키지 안에 있는 모든 컨트롤러에서 게시판 목록을 사용할 수 있도록 설정함.
//메인 컨트롤러
@Controller
public class MainController {
private final Logger logger = LoggerFactory.getLogger(MainController.class); //로그 관련
@GetMapping("/")
public String main(){
return "index";
}
}
보시다시피 메인 컨트롤러에는 index 화면으로 리턴해주는 메소드 밖에 없음.
하지만 !
이런 식으로 index 화면에서는 게시판이 출력되는 것을 볼 수 있음.
위와 같은 방식으로 다양한 화면에서 model 정보를 사용하고 싶다면,
@ControllerAdvice 클래스를 만들어서 관리하면
더욱 깔끔하고 유지보수도 편해짐!!(필자 주관적 입장)
날씨가 쌀쌀함. 다들 감기조심!!😉👍
📢참조
https://tecoble.techcourse.co.kr/post/2021-05-10-controller_advice_exception_handler/
ExceptionHandler 와 ControllerAdvice
@ExceptionHandler @ExceptionHandler 는 @Controller , @RestController 가 적용된 Bean 에서 발생하는 예외를 잡아서 하나의 메서드에서 처리해주는 기능이다. @ExceptionHandler…
tecoble.techcourse.co.kr
전역 컨트롤러: @(Rest)ControllerAdvice
@(Rest)ControllerAdvice 예외 처리, 바인딩 설정, 모델 객체를 모든 컨트롤러 전반에 걸쳐 적용하고 싶은 경우에 사용한다. 예외를 처리하는 @ExceptionHandler와 함께 사용하면 전반에 걸친 예외처리가 가
sun-22.tistory.com
'개발자 모드 > 응용' 카테고리의 다른 글
Spring Security 사용하여 로그인 구현하기 (0) | 2022.11.03 |
---|---|
Spring Session 시간 설정 방법 (0) | 2022.11.01 |
React Simple Captcha(자동입력방지) 추가하기(2) (0) | 2022.10.21 |
React Simple Captcha(자동입력방지) 추가하기(1) (0) | 2022.10.21 |
React 토스페이먼츠 카드 전표 출력하기 (0) | 2022.10.20 |