에러 메세지 Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/SpringApplication has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 59.0 at java.base/java.lang.ClassLoader.defineClass1(Native Method) at java.base/java.lang.ClassLoader.defineClass(C..
개발을 할 때 Base URL을 매번 Controller에서 설정하는 것은 여간 귀찮은 것이 아니다. 그리고 Base URL이 바뀔 경우 모든 클래스를 다 수정하는 것도 문제가 될 수 있다. Spring boot에서는 매우 간단하게 Base URL을 설정하는 방법을 제공한다. 예제 import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class RestController { @RequestMapping("/rest/v..
Springboot의 경우 내장에서 띄우는 서버가 Tomcat이고, Tomcat은 Default 포트로 8080을 사용하고 있는데 Boot Dashboard에서 동일한 포트로 프로젝트를 띄울 수 없다. 그리고 이미 다른 서버에서 8080을 사용하고 있는 경우, 포트번호를 변경해야 하는데 아래와 같이 손쉽게 수정이 가능하다 사용중 포트 에러 로그 *************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's list..
폼(Form) 생성 폼이란 데이터를 담아놓은 집합 같은 걸로 폼을 전송하게 되면 태그 안에 있는 데이터를 전송할 수 있게 된다. 물론 다른 폼에 있는 데이터를 가져올 수도 있지만 submit을 할 때 폼 자체를 전송하거나 폼 내부의 값들을 serialize하여 전송하는 경우가 대부분이다. 로그인폼(login.jsp) 아이디 패스워드 폼 파라미터 전송을 실습하기에는 로그인 만큼 좋은 것이 없을 것이다. 심플하게 테이블 코딩을 하였고, 값은 아이디와 패스워드가 존재하며, 실행은 login/action 경로로 값을 전달하게 된다. 파라미터 처리 및 매핑 LoginController.java 파라미터를 처리하고 페이지를 매핑하는 용도로 loginController를 생성한다. package com.tistory..
스프링툴슈트(STS)에는 기본적으로 웹기능들이 세팅되어 있지 않다. 그러다보니 JSP 등을 개발하기가 상당히 까다롭고 불편한데 이클립스 마켓에서 플러그인(plugin)을 설치하는 것으로 해결이 가능하다. 이클립스 마켓플레이스(Eclipse Marketplace) 이클립스에서 상단 메뉴의 가장 우측에 있는 Help 메뉴의 선택 후 하단을 보면 위 스샷처럼 이클립스 마켓(Eclipse Marketplace)가 존재한다. 위 마켓에 들어간 후 Eclipse Enterprise Java and Web Develper Tool eclipse web으로 검색을 하면 이와 같이 "Eclipse Enterprise Java and Web Develper Tool" 이라는 것이 나오는데 Install을 선택하여 플러그인..
바로 이전에 Json 형태로 데이터를 출력하는 것을 만들었는데 이번에는 JSP를 연동하는 기능을 만들어보고자 한다. 스프링부트는 기존 스프링과 달리 JSP를 default로 제공하지 않기 때문에 이렇게 별도로 세팅을 해야 하는 번거러움이 있긴 하다. 의존성(Dependency) 추가 모든 view 페이지는 jsp로 진행하며, jsp는 스프링에서 별도의 디펜던시(dependency)를 추가해야 한다. 만약 maven으로 하였다면, pom.xml에 다음과 같은 dependency를 추가한다 jstl jstl 1.2 org.apache.tomcat.embed tomcat-embed-jasper provided 디펜던시를 추가 하였으면 Gradle Project를 Refresh한다. 그레이들을 리프레쉬하면, 디..
스프링부트(Spring Boot)로 매우 간단히 JSON 구조로 데이터를 출력할 수 있는데 본 포스팅은 프로젝트를 만들고 JSON 구조로 api까지 출력해보는 것을 만들어보고자 한다. 우선 web 형태로 프로젝트를 생성한다. 아래 참고 [Spring] 스프링 부트(Spring boot)로 웹 프로젝트 만들기 스프링부트(Springboot)로 프로젝트를 시작하기 위해서는 우선 프로젝트가 어떤 성격을 띄었는지를 알고, 해당 성격에 맞는 설정을 한 후 Generate를 하는 방법이 있다. 예를 들어 프로젝트가 웹개발 needneo.tistory.com 웹 starter로 프로젝트를 생성하였다면, 다음과 같이 VO(Value Object를 생성한다. Entity 클래스 package com.tistory.nee..
개발을 한지 얼마 되지도 않았고 뭐가 뭔지 잘 모르겠는 스프링 뉴비(newbie)분들은 프로젝트를 하기 전에 우선 프로젝트의 구조를 익히는 것이 좋을 것입니다. 이 포스팅은 너무 자세히는 설명하지 않고 간단히 프로젝트의 구조에 대해서 설명해보겠습니다. 스프링부트 프로젝트 구조 STS를 열고 내가 이미 만들어 놓은 프로젝트를 자세히 보면 아래와 같은 구조로 되어 있을 것입니다. 하나하나 위치별로 다시 설명을 드리자면 자바코드 최상단에 위치한 src/main/java에 있는 곳은 자바 코드가 위치해야 하며, com.tistory.needneo같은 것은 패키지 명입니다. 일반적으로 패키지명을 먼저 설계해서 만들어 놓은 후 자바코드들을 넣습니다. 가장 많이 작업할 공간이며, 패키지명을 잘 설계하는 것과 코드를 ..
스프링부트(Springboot)로 프로젝트를 시작하기 위해서는 우선 프로젝트가 어떤 성격을 띄었는지를 알고, 해당 성격에 맞는 설정을 한 후 Generate를 하는 방법이 있다. 예를 들어 프로젝트가 웹개발을 해야 하고 Rest 형태로 통신을 하는 것이 존재하며 MongoDB를 호출한다라는 설정을 넣게 되면 그에 맞게 세팅을 이미 한 프로젝트를 내려받아서 사용하는 것이다. 스프링 사이트 부트 설정화면 보통 spring의 웹사이트에서 이런 작업을 진행하지만 이클립스에서 스프링 툴을 설치했거나 STS(Spring Tool Suite)를 사용해서 웹프로젝트를 만들게 되면, 이 작업을 이클립스 내부에서 할 수 있다. STS(이클립스) 부트 설정 STS나 스프링이 애드온된 이클립스를 실행하면 File -> New..
Eclipse Addon vs Spring Tool 스프링부트(Spring boot)를 개발하기 위해서는 이클립스에 spring 에드온을 설치하는 방법과 스프링쪽에서 이클립스를 스프링에 맞게 만들어서 배포한 버전 둘 중에 하나를 사용하면 된다. 일반적으로 후자가 세팅을 하기가 수월하기 때문에 이 포스팅에서는 Eclipse Market 방식이 아닌 STS 다운로드를 직접 받아서 실행보는 것까지 해본다. Spring Tool 설치 Spring Tools 4 is the next generation of Spring tooling Largely rebuilt from scratch, Spring Tools 4 provides world-class support for developing Spring-based..