일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- error
- spring security 로그인
- react simple captcha
- 스프링 시큐리티
- react 심플캡차
- Spring Boot
- 리액트 캡차
- 리액트 심플캡차
- 속도기능개선
- 계층구조vs도메인구조
- 백엔드 아키텍처
- git
- build
- REACT
- 스프링 시큐리티 로그인
- maven
- 배치파일로 JDK 버전변경
- spring error
- react 캡차
- spring
- 에러
- react captcha
- Docker
- react 상태
- react 자동입력방지
- Spring Security
- 깃
- 스프링
- SpringBoot
- Security 로그인
Archives
- Today
- Total
I can do it(Feat. DEV)
Spring MVC @ControllerAdvice 활용하기 본문
728x90
다른 프로젝트에서 @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/
728x90
'개발자 모드 > 응용' 카테고리의 다른 글
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 |