Java Spring
Plugin 'org.apache.maven.plugins:maven-compiler-plugin:' not found 해결법
pom.xml에 메이븐이 작동안할때가 있다. 이럴땐 가장 쉬운 방법은 build를 전부 지우고 디펜던시로 추가해주는것이다. org.apache.maven.plugins maven-compiler-plugin 3.8.1 그리고 메이븐 재빌드를 하면 된다. 그럼 아래와 같이 해결된다. 그외 방법은 스택오버플로우를 참조하길바란다.
33. 스프링 뉴스 API 구현
이전에 만든 뉴스 API는 JAX-RS를 사용했다. 이번에는 RestController을 사용할것이다. 물론 REST API는 이미 어노테이션을 이용해 구현한 것이므로 어노테이션만 스프링 버젼으로 바꾸면된다. 기존코드는 거의 변경할게 없다. 우선 이전에 생성해둔 NewsApoiController.java에 기존코드 내용을 복사해 어노테이션만 바꿔주자. 1️⃣ NewsApiController 코드작성 클래스 선언 package com.example.news; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.spr..
32. 스프링 뉴스 웹 구현
스프링 버전으로 기존의 뉴스 웹 서비스를 수정하기 위해서 컨트롤러를 새로 만들어야한다. 하지만 뷰와 모델 부분은 약간의 수정만 하면된다. 따라서 컨트롤러 코드는 기존 컨트롤러에서 재활용 하게 될것이다. 1️⃣ 모델 코드 수정 News.java는 수정할 부분이 없고 NewsDAO는 아래처럼 스프링 빈 등록을 위해 @Component 어노테이션만 추가해주면된다. @Component public class NewsDAO { final String JDBC_DRIVER = "org.mariadb.jdbc.Driver"; final String JDBC_URL = "jdbc:mariadb://localhost:3306/spring"; //spring내부에 news 테이블 ... } 2️⃣ NewsWebContro..
31. 프로젝트 개요 및 설정
1️⃣ 프로젝트 개요 기본적인 화면과 기능은 이전에 만든것과 동일하다. REST API도 이전에 만든 기능을 그대로 스프링 버젼으로 개발하게 될것이다ㅣ. 이번 프로젝트 구현범위는 아래와 같다. 뉴스 서비스 스프링 WebMVC 컨트롤러 구현 뉴스 서비스 API RestController 구현 모델과 뷰 영역은 기존에 만든것을 그대로 사용할것이다. 클래스 이름은 동일하게 사용하고 패키지를 따로 만들어 관리할것이다. 2️⃣ 개발환경 설정 기존 소스복사 이전에 만든 spring_study 프로젝트에 com.example.news 패키지를 만들어주자. 그리고 이전에 만든 news 프로젝트의 ch10 패키지로 들어가 News.java와 NewsDAO.java를 복사해오자. 만약 저기에서 에러가 발생한다면 패키지 문..
30. 스프링 RestController구현
이전에 만든 JAX-RS와 유사한 구조이며 이번에는 REST API를 RestController 버전으로 구현할것이다. 1️⃣ 클래스 생성 및 테스트 클래스 생성 TestRestController라는 이름으로 클래스를 생성해주자. Java Package : com.example.demo Class name : TestRestController package com.example.spring_study; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.Re..
29. 스프링 MVC 컨트롤러 구현
1️⃣ 요청 파라미터 처리 GET, POST는 각각 @GetMapping, @PostMapping 어노테이션을 사용한다. GET, POST는 클라이언트가 서버로 요청하는 과정에서만 의미가 있다. 서버가 요청을 받아들인 후엔 처리방식이 동일하다. 이제 이전에 만들었던 TestWebController.java 클래스를 수정할것이다. @GetMapping("/hello2") @ResponseBody public String hello2(@RequestParam(value="msg", required=false) String msg) { return msg; } @ResponseBody : 별도의 뷰가 아닌 리턴값을 직접 HTTP응답 바디에 출력한다. 다음으로 http://localhost:8083/test/h..
28. 스프링 개발환경 설정
1️⃣ 스프링 프로젝트 생성 프로젝트 생성 프로젝트를 아래와 같이 새로 생성해주자. Name: 프로젝트 이름. spring_study로 만들어주자. Type : Maven과 Gradle중 Maven을 골라주자. Packaging : jar, war중 선택가능하다. JSP를 사용하면 WAR을 골라주자. 다음 페이지는 아래와 같이 설정해주자. 2️⃣ JSP 사용 설정 스프링 부튼 기본적으로 타임리프를 뷰 템플릿 엔진으로 사용하는데 JSP를 사용하기 위해서 추가작업이 필요하다. JSP파일처리와 JSTL사용을 위한 라이브러리를 pon.xml에 추가해주자. org.apache.tomcat.embed tomcat-embed-jasper provided javax.servlet jstl 그리고 프로젝트 리로드를 해주..
27. 뉴스 REST API 서버 구현
이전에 만든 뉴스서비스에 REST API를 추가하여 REST API 서버를 구현할것이다. 웹 기반 뉴스 서비스를 스마트폰에도 제공해야 하는 경우 REST API만 추가하면 스마트폰과 웹 모두 지원되는 웹 서비스 구현이 가능하다. 1️⃣ API 설계 뉴스 등록, 삭제, 목록, 상세 보기 기능 전부 API로 구현하며 세부 API는 아래와 같다. 기능 메소드 URI 설명 뉴스등록 POST /news 뉴스 등록을 위한 데이터를 JSON으로 HTTP body에 전달. 뉴스삭제 DELETE /news/aid 뉴스 삭제를 위한 aid경로를 파라미터로 전달. 뉴스목록 GET /news 전체 뉴스 목록을 JSON으로 전달. 뉴스상세보기 GET /news/aid 특정 뉴스의 aid경로를 파라미터로 전달. 2️⃣ API 구..