본문 바로가기

Backend/Spring Framework9

Spring Framework 에서 AOP 로 Logging 서비스 만들기 AOP 카테고리의 첫 게시물에서는 너무 예전 버전을 중심으로 작성했었고, 이 게시물의 마지막은 '요즘은 너무 캡슐화, 추상화가 잘 되어있다..' 였는데 ㅋㅋㅋ 이제야 그 방법을 통해! AOP 를 만들어 보았습니다. 이전 게시물 -> https://vvh-avv.tistory.com/7 AOP 기본 정리 앞서, AOP와 AOP에서 자주등장하는 단어들을 정리한 페이지가 있으니 참고하자. 2018/05/01 - [용어정리] - 05) AOP 일상생활에 빗대어 AOP를 쉽게 이해하려면 은행시스템의 입출금기능을 구현한다고 생각해보자... vvh-avv.tistory.com [개발 방향] 우선, (기본 Spring Framework 세팅이 다 되어있다는 가정하에) 정의한 개발방향은 아래와 같았다. 1. Contro.. 2019. 10. 23.
@Value vs @ConfigurationProperties 비교 Spring 환경에서 Properties 정보를 가져오는 방법 중, 현재 우리 팀에서는 @Value 어노테이션을 사용하고 있는데 @ConfigurationProperties 어노테이션을 사용하게 되면 어떤 이점이 있을까? 하는 생각으로 찾아본 내용을 정리해본다 .. 일단, Spring 팀에서는 이렇게 말했다. @Value("${property}") 주석을 사용하여 구성 속성을 주입하는 것은 번거로울 수 있으며, 특히 여러 속성을 사용 중이거나 데이터가 계층적일 경우 스프링 부트는 다음 예와 같이 강하게 입력된 Bean 이 응용 프로그램의 구성을 제어하고 검증할 수 있도록 하는 대체적인 속성 작업 방법을 제공한다. 결론은, 호출하여 사용하려는 Properties 정보가 여러 개 일 경우에는 Bean 으로 .. 2019. 7. 1.
redirect 로 페이지 이동시 값 전달방법 보상기능을 쓰기 위해 유저가 게시판에 게시물을 쓰면, 지금까지 작성한 게시물 개수를 listBoard 에 뿌려줘야했다.근데 값을 전달할 때는 forward 를 사용해야만 하는줄 알아서 어떻게 해야하나 고민하고 있었는데...!spring 에서는 RedirectAttributes 클래스를 이용해 redirect 로도 값을 전달할 수 있다 !!!!!! (최고) * 사용방법 *1. RedirectAttributes 선언하고2. addAttribute() 로 담은 다음에3. 받는 Controller 에서 @RequestParam 으로 잡고4. View 에 전달하기 위해 model 에 담으면 끝! * 실제 사용방법 *1. Controller - addBoard1234567891011@RequestMapping(va.. 2018. 7. 25.
[Java/Spring] 파일 다중업로드 기능 구현 파일 단일업로드, 파일 다중업로드, 파일 중복체크를 개발한 것에 대한 내용을 정리한다 :) 우선 화면에서 form 태그를 생성하는데, 여기서 중요한건 2가지가 있다. ... 1. form 태그의 { enctype="multipart/form-data" } -> 파일 업로드 기능을 사용할 수 있게 한다. 2. input 태그의 { type="file", multiple="multiple" } -> 파일 다중업로드가 가능하도록 한다. 이렇게 파일을 올렸다면, Controller 에서 인자로 HttpServletRequest 말고 MultipartHttpServletRequest 를 받아야 한다. MultipartHttpServletRequest : HttpServletRequest 를 상속받았기 때문에, H.. 2018. 5. 16.
컨트롤러에서 쿠키저장이 잘 안될 때 해결하는 방법 참고 : http://marobiana.tistory.com/16 위 블로그의 아래 글을 읽고 해결했다 :) 컨트롤러에서 쿠키에 값을 집어넣으려고 response.addCookie(쿠키이름, 값); 을 해도 JSESSION만 생길뿐, 내가 설정한 쿠키이름으로 set이 되지 않았다. * JSESSION이란 - 클라이언트가 서버에게 요청을 보낼 때, 어떤 클라이언트인지 식별하게 해주는 것 이다. 서버에서 기본적으로 생성해주며, 값은 유일한 값으로 해시코드로 들어있다. 스프링에서는 컨트롤러에 저런식으로 쿠키를 넣는것이 안된다고함. 대신 인터셉터에서는 사용가능 함. 듣기로는 컨트롤러에서 domain, path 설정을 하면 돌아간다고 하는데 그래도 안되는 것 같고, 그래서 결국 CookieGenerator 클래스.. 2018. 5. 9.
@RequestParam 과 @ModelAttribute @RequestParam단일 HTTP요청 파라미터값을 메소드 파라미터에 넣어주는 Annotation "no" 라는 네임으로 요청들어온 파라미터값을 int 타입의 no 변수에 담는다.1234@RequestMapping("/testView.do")public String testView( @RequestParam("no") int no ){ Logic...}Colored by Color Scriptercs 여기서 중요하게 봐야할 것은 Prarmeter 값이 존재하지 않을 경우 404에러가 뜬다는 것 !!!그럴 땐 아래와 같이 유연하게 코딩하자.1) required=false : 별도로 널체크를 하지 않아도 됨1234@RequestMapping("/testView.do")public String testVie.. 2018. 5. 4.