반응형

java framework spring 13

[spring] @ControllerAdvice, @ExceptionHandler를 이용한 예외처리

목차 역시나 미래의 내가 보기 위해 기록한다. 기존에는 try catch문으로 예외를 처리했었는데 예외처리가 필요한 여러군데 코드에 적용을 해야 되니.. 클린하지가 않아 구글링 해보니 스프링에서 제공하는 @ControllerAdvice, @ExceptionHandler이 있었다. 왜 이걸 이제야 알게 되었는지.. 😥 테스트 개발환경은 아래와 같다. @ExceptionHandler 😄 @Controller나 @RestController가 선언된 Bean에서 발생한 예외만 처리할 수 있다. @Service나 @Repository와 같은 곳에서의 예외는 처리할 수 없음에 유의할 것 사용방법은 간단하다. 컨트롤러 내에 메소드를 만들고 @ExceptionHandler를 선언하고 value값으로 예외처리 클래스를 ..

IT/development 2022.12.04

[Spring]RequestMapping의 변화

목차 RequestMapping의 변화 @Controller 어노테이션은 추가적인 속성을 지정할 수 없지만 @RequestMapping은 몇 가지의 속성을 추가할 수 있는데 그중 많이 사용하는 속성이 method 속성이고 흔히 GET방식, POST 방식을 구분해서 사용할 때 이용되며 스프링 4.3버전에서는 @RequestMapping을 줄여서 사용할 수 있는 @GetMapping, @PostMapping이 등장하는데 축약형의 표현이므로 기존의 @RequestMapping과 비교해서 학습하는 걸 권장 @RequestMapping은 POST, GET 방식 둘다 지원해야 하는 경우네느 배열로 처리해서 지정할 수 있고 일반적으로는 GET, POST방식만을 사용하지만 최근에는 PUT, DELETE 방식 등도 점점..

IT/development 2022.11.30

[Spring]@ModelAttribute 어노테이션

목차 스프링 @ModelAttribute 스프링MVC의 Controller는 기본적으로 Java Beans 규칙에 맞는 객체는 다시 화면으로 객체를 전달함 좁은 의미에서 Java Beans 규칙은 단순히 생성자가 없거나 빈 생성자를 가져야 하며, getter/setter를 가진 클래스의 객체들을 의미함 앞의 예제에서 parameter로 사용되었던 SampleDTO의 경우는 Java Beans 규칙에 맞기 때문에 자동으로 다시 화면까지 객체가 전달되었음(전달 될 때는 클래스명의 앞글자는 소문자로 처리됨) 반면 기본 자료형의 경우는 parameter로 선언하더라도 기본적으로 화면까지 전달되지는 않음 아래 이미지처럼 SampleController에서 method를 작성한 뒤 브라우저에서 parameter의 값..

IT/development 2022.11.30

[IDE]IntelliJ springBoot 리소스 자동 리로드

목차 IntelliJ springBoot 리소스 자동 리로드 spring-boot-devtools를 이용(서버 재시작없이 자동 리로드) 출처 : https://powernote.tistory.com/19 IntelliJ spring boot DevTools 자동 빌드 적용하기. ** intelliJ version : IntelliJ IDEA 2018.1 이후 버전 # IntelliJ 에서 devtools 개발도구를 설치 하면 이상하게 EClipse에서 잘되던 자동 컴파일 이 안된다. # devtools 를 반영하고 적용하는것을 해보자. 참고 URL : ht powernote.tistory.com 출처 : https://lejewk.github.io/springboot-devtool/ spring boot..

IT/development 2022.11.29

[Spring]spring REST(Representational State Transfer)

목차 spring REST(Representational State Transfer) Rest는 "Representational State Transfer"의 약어로 하나의 URI는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념에 전송방식을 결합해서 원하는 작업을 지정함 스프링에서는 @RequestMapping, @ResponseBody와 같은 REST방식의 데이터 처리를 위한 여러 종류의 어노테이션과 기능을 제공함 REST와 관련해서 알아둘 필요가 있는 어노테이션은 아래와 같음 @RestController: Controller가 REST방식을 처리하기 위함을 명시함 @ResponseBody: 일반적인 JSP와 같은 뷰로 전달되는 것이 아니라 데이터 자체를 전달하기 위한 용도에 사용..

IT/development 2022.11.27

[Spring]UriComponentsBuilder(서버단에서 동적으로 URI 생성)

목차 UriComponentsBuilder(서버단에서 동적으로 URI 생성) 게시판에서 검색한 결과값이 글 수정, 조회를 해도 계속 페이지에 결과값이 유지되어야 하는 경우가 필요함 이 때 화면에서 form에 input hidden 속성으로 데이터를 담아서 javascript로 동적으로 form action을 변경시켜서 GET방식으로 전송하는데 이 작업을 줄여줄 수 있는게 UriComponentsBuilder 클래스임, 사용방법은 아래와 같음 아래는 검색조건을 유지하는 Criteria class인데 여기에 UriComponentsBuilder를 이용해서 parameter를 연결해서 링크를 생성하는 기능을 추가할 수 있음 getListLink()는 페이지번호, 보여줄 페이지 수, 검색타입, 검색 키워드를 p..

IT/development 2022.11.27

[Spring]spring 프레젠테이션(웹)계층의 CRUD 구현 시 MockTest

목차 MockTest 과거에는 view페이지를 만든 뒤 Tomcat을 실행하고 웹 페이지에서 결과를 확인하는 방식의 코드를 작성해 왔는데, 이 방식은 시간도 오래 걸리고 테스트를 자동화 하기에도 어려움이 많아서 Mock을 이용해서 Controller를 테스트 하는 방식이 있음 MockMvc는 말 그대로 '가짜 mvc'라고 생각하면 되고, 가짜로 URL과 parameter 등을 브라우저에서 사용하는 것처럼 만들어서 Controller를 실행 해 볼 수 있음 우선 아래처럼 BoardController에서 게시글 전체 목록을 가져오는 예제 코드를 작성함 그 다음 아래 이미지처럼 테스트 코드는 웹을 개발할 때 매번 URL을 테스트 하기 위해 Tomcat을 실행하는 불편한 단계를 생략하기 위해서 기존과 다르게 작..

IT/development 2022.11.27

[Spring]단위테스트 jUnit

목차 단위테스트 jUnit 개발하기전 아래와 같이 jUnit으로 JDBC Connection을 먼저 하고 시작하는 습관을 기를 것 단위테스트 하기 위해 매번 Tomcat을 실행하지 않고도 jUnit 테스트 도구를 이용해서 Tomcat 실행 없이 springFramework를 구동시켜서 DB Connection, CRUD등의 테스트가 가능해서 시간도 절약되고 매우 효율적이므로 개발 시에 항상 작성하는 습관을 기르도록 하자 스프링5 버전의 경우 pom.xml에서 jUnit 버전을 4.12 이상으로 해야 한다고 함 아래는 HikariCP를 이용한 Connection Pool Test 예제 이미지임 @RunWith, @ContextConfiguration 클래스 상단에 어노테이션등을 사용해서 설정하고 jUnit..

IT/development 2022.11.27

[Spring]spring 404 에러 페이지 처리

목차 spring 404 에러 페이지 처리 WAS의 구동 중 가장 흔한 에러와 관련된 HTTP 상태코드는 '404'와 '500' 에러코드 임 500 메시지는 'Internal Server Error'이므로 @ExceptionHandler를 이용해서 처리되지만, 잘못된 URL을 호출할 때 보이는 404 에러 메시지의 경우는 조금 다르게 처리하는 것이 좋음 서블릿이나 jsp를 이용했던 개발 시에는 web.xml을 이용해서 별도의 에러 페이지를 지정할 수 있었음, 에러 발생 시 추가적인 작업을 하기는 어렵기 때문에 스프링을 이용해서 404와 같이 WAS 내부에서 발생하는 에러를 처리하는 방식을 알아두는 것이 좋음 스프링 MVC의 모든 요청은 DispatcherServlet을 이용해서 처리되므로 404 에러도 ..

IT/development 2022.11.27

[Spring]spring RedirectAttribute

목차 spring RedirectAttribute Model 타입과 더불어서 스프링 MVC가 자동으로 전달해 주는 타입 중에는 RedirectAttribute 타입이 존재함 RedirectAttribute는 조금 특별하게도 일회성으로 데이터를 전달하는 용도로 사용됨 RedirectAttribute는 기존에 Servlet에서 response.sendRedirect()를 사용할 때와 동일한 용도로 사용됨 아래 이미지처럼 RedirectAttribute는 Model과 같이 parameter로 선언해서 사용하고 addFlashAttribute(이름, 값) 메서드를 이용해서 화면에 한번만 사용하고 다음에는 사용하지 않는 데이터를 전달하기 위해서 사용됨 출처: 코드로 배우는 스프링 웹 프로젝트(개정판)

IT/development 2022.11.27
반응형