지난 포스팅에서는 가장 기본적인 API (흔히 Rest라고 부르는)를 만들어보았습니다. Board 객체를 CRUD 기준으로 5가지의 API를 개발해보았는데요. 자세한 내용은 지난 포스팅을 확인해주시면 좋을 것 같습니다! sas-study.tistory.com/366 [Spring Boot] 게시판 예제를 이용하여 더욱 RESTFul API 개발하기#1 (흔히 REST API라고 불리는 API 예제) 안녕하세요. 몇달전에 썻던 Board 게시판 예제를 이용하여 rest api를 작성했던 포스팅에 이어 두번째 더욱 restful api 개발 예제를 작성해보려고 합니다. 최근 백기선님의 REST API 강의를 보고 많은 영 sas-study.tistory.com 오늘 진행해볼 내용은 Add 또는 Edit 시에..
안녕하세요. 몇달전에 썻던 Board 게시판 예제를 이용하여 rest api를 작성했던 포스팅에 이어 두번째 더욱 restful api 개발 예제를 작성해보려고 합니다. 최근 백기선님의 REST API 강의를 보고 많은 영감을 받았으며 해당 강의를 수강하면서 얻은 저의 영감..? 을 공유해드리기 위해 또한 기선님의 강의내용에 대한 스포가 존재할까 염려하여 전혀 다른 저만의 코딩스타일로 진행하고자하니 이점 유의해주시기 바랍니다. 모든 소스코드는 여기에서 확인하실 수 있습니다. git branch 별로 stage를 나눠놓았으니 확인하실 수 있으실 겁니다. 더욱 RESTFul한 API를 제작하는데 들어가는 스펙은 아래와 같습니다. - Spring Boot 2.3.4 - Java8 - gradle - Sprin..
@ConfigurationProperties @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface ConfigurationProperties { @AliasFor("prefix") String value() default ""; @AliasFor("value") String prefix() default ""; boolean ignoreInvalidFields() default false; boolean ignoreUnknownFields() default true; } 기본적으로 소스는 다음과 같습니다. 안의 주석문을 뜯어보면 다음과 같습니다. 맨 위엣줄..
안녕하세요. 오늘은 서버사이드 렌더링 환경에서 사용되는 템플릿 엔진중 thymeleaf라는 템플릿 엔진을 예제로 스프링부트로 서버사이드 렌더링했을 때 서버를 직접 재시작하지 않고도 화면을 갱신하는 방법을 공유하고자 합니다. 먼저 필요한 컨트롤러를 작성합니다. 컨트롤러 @Controller public class HelloController { @GetMapping("/hello") public String hello(Model model) { model.addAttribute("data", "hello"); return "hello"; } } locahost:8080 를 기본으로 /hello로 접근했을 때, templates/hello.html 파일을 찾아내서 렌더링하게 될 것입니다. hello.html..
logback.xml 파일을 이용하여 로그 남기기 - Mybatis를 이용하여 쿼리를 실행할 때 동적으로 작성한 쿼리의 실제 실행 모습이 보고싶었음. - log4j를 이용했을 때는 net.sf.log4jdbc.Log4jdbcProxyDataSource 클래스로 DataSource를 만들어야 했으므로 설정을 변경하는 일이 있었음. (application.properties 나 Config 파일을 수정해야하는 경우) - 그냥 DEBUG와 단순 INFO로 켜고 끄는 기능을 찾고 싶었음. logback 파일 생성 ver. 1 %d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n - 처음에는 단순히 로그를 좀 더 자세히 찍고 실행되는 SQL 쿼리를 보고 싶었음. - ro..
안녕하세요. 오늘은 커스텀 어노테이션을 활용하여 컨트롤러에서 메소드에 선언된 파라미터에서 세션 유저를 받아올 수 있도록 하는 HandlerMethodArgumentResolver 예제를 공유하고자 합니다. 우선 이전에 포스팅했었던 커스텀 어노테이션을 만드는 상세한 내용은 아래의 포스팅을 참조해주시기 바랍니다!! 2020/01/13 - [프로그래밍 언어/[Java] Study 내용 ] - [Java] Custom Annotation 커스텀 어노테이션 만들기(reflection 리플렉션) [Java] Custom Annotation 커스텀 어노테이션 만들기(reflection 리플렉션) 자바에서 커스텀 어노테이션을 만드는 방법은 다음과 같다. public @interface MyAnnotation { } 사..
모든 소스는 github에서 관리하고 있습니다. 따라하시다가 미처 제가 신경쓰지 못한 부분이 있다면 이곳을 확인해주세요^^ 목표 : getAll을 없애고 list 페이징 처리를 하여 페이지당 10개의 게시물을 가져올 수 있도록 한다. 파일별 설명 BoardController.java @GetMapping( value = "/list/{page}", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE ) public Object getList(@PathVariable("page") @Min(0) Integer page) throws Exception{ return boardService.getBoar..
프로젝트 구조 - 유저쪽 패키지를 생성합니다. - 컨트롤러와 서비스 DAO단 클래스들을 생성합니다. - 테스트코드에서 User api를 테스트할 클래스를 생성합니다. 파일별 설명 모든 소스는 github에서 관리하고 있습니다. 따라하시다가 미처 제가 신경쓰지 못한 부분이 있다면 이곳을 확인해주세요^^ UserController.java package co.worker.board.user.controller; @RestController @RequestMapping("/api/users") @Validated public class UserController { private UserService userService; public UserController(UserService userService){ ..