진짜 Spring Boot 시작하기

개발툴을 설치했으면 이제 진짜…
Hello Spring Boot!! 를 찍어보기 위해 달려보자..

좌측의 Create new Spring Starter Project 를 눌러준 후 각 정보 입력 후 Next

 

사용할 라이브러리 선택 후 Finish!!

 

프로젝트에 에러가 발생한다.

프로젝트 우클릭 -> Maven -> Update Maven Project
Force Update of Snapshots/Releases 체크 후 OK 를 눌러준다.

오류가 사라지면

프로젝트 패키지 내에

xxxApplication.java 우클릭 -> Run As -> Java Application 클릭!!

Console창에 정상적으로 실행 된 것을 확인 할 수 있다..

웹 관련 설정을 1도 안한 상태라… (의존성 pom.xml 만 작성)

되는건가… 의구심이 들어 주소창에 입력..

http://localhost:8080

Spring security 를 적용하기 위하여 의존성을 추가해서

Spring security 메인 화면이 나오는 상태인데…

일단.. 서버는 잘 기동이 된 걸로 확인 완료..

View Resolver 나 서버 포트 설정은.. 더 찾아 봐야할듯…

Hello Spring Boot!! 를 찍은게 아니라.. 먼가 찝찝…하네-_-


찝찝하여… spring 공홈에서 searching…

https://spring.io/quickstart

내 비록 영포자(영어포기자..ㅠ)이지만… 이정도는.. 찾아서 할 수 있지 않을까…?

pom.xml 에서 spring security 관련 부분을 모두 주석 처리 후

xxxApplication.java  파일 수정

@SpringBootApplication
@RestController
public class EpApplication {
	public static void main(String[] args) {
		SpringApplication.run(EpApplication.class, args);
	}

	@GetMapping("/hello")
	public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
		return String.format("Hello %s!", name);
	}
}

서버 재시작!!?

서버가 없는데…

Spring Boot 는 뭔가 내부적으로 하는게 많은 것 같다..

설정이 복잡하지 않긴 한데…

 

상단의 위 아이콘 클릭으로 대체 가능!!

 

짜잔~?

Hello World! 가 출력되었다..ㅠㅠ

아? Hello Spring Boot! 를 띄워야하지..

 

완료…

 


총 평가..(?)

확실히… 편하긴 편하다…

처음부터 SpringBoot 를 쓴다면.. 오히려 더 좋을지도…?

다만.. SpringFramework 설정부터 해왔던 내 입장에서는..

편한건 사실…

다만… log 설정방법, 서버설정 등과 같은 세부적인 설정파일?

이 직관적으로 보이지 않기 때문에 다소 난해하다고 느껴지는 것 같다.

 

추가적으로 더 찾아서 설정해야 하는 항목으로는..

log level 이나.. 서버 포트.. 등등 관련 항목은 차근차근 찾아보는걸로…

그리고… return 항목에 jsp 를 받는 부분…

SpringFramework 기준으로 말하면..

ViewResolver 와 관련된 부분등이 있을 것 같다..

 

 

0 글이 마음에 드셨다면 하트 꾸욱~

Spring Boot 시작하기?(Spring Tool Suite 다운로드)

글을 쓰기에 앞서…

다른 블로그나 이런 부분을 참조해볼까 싶어 2~3군데 둘러봤는데…

너무 대충? 경험치를 믿고? 자세히 검색을 하지 않아서 그런지…

Spring Framework와 Spring Boot의 차이라던지…

이런점이 바뀌어서 편하다, 이런게 포함되어있다와 관련된 정보만

본상태로 작성을 하는 것이기 때문에 될지 안될지 확신이 서지 않는다..

그럼 시작 해볼까…

 

Spring Boot 를 하려면… 우선 개발툴?을 다운 받아야한다.

많은 개발자들이 사용하고 있는 이클립스(eclipse) 를 다운 받아도 되지만…

(eclipse 가  사용하지 않는 플러그인이 최소화 되어 있는 것 같아 선호 하는 편..)

 

우선 spring 공홈으로 이동…

https://spring.io/

상단에 Projects -> Spring Tools4 를 클릭한다.

페이지가 넘어가서 보면…

다양한 툴이 존재한다..

  1. Spring Tools 4 for Eclipse
  2. Spring Tools 4 for Visual Studio Code
  3. Spring Tools 4 for Theia

2번과 3번은… 사용해본적이 없기에… 익숙한 Eclipse 기반으로 된 툴을 다운로드

64비트 다운로드(Download)

 

다운로드 한 파일을 더블클릭하면… 압축을 해제한다.

압축을 해제 하면 같은 폴더(다운로드 받은 파일 경로)에 새로운 폴더가 생성된다.

sts-4.6.1.RELEASE(작성하는 시점 기준)

해당 폴더에 들어가보면…

위와 같은 리스트가 보이고… 녹색 박스의 SpringToolSuite4.exe 를 실행하면…

 

실행이 안된다…ㅡㅡ

java가 설치되어 있지만, 환경변수가 잡혀있지 않는 경우인데…

컴퓨터->속성 블라블라~로 설정을 잡아 줄 수 도 있지만

그 방식이 아닌 해당 툴을 기준으로 JAVA경로를 잡아준다.

SpringToolSuite4.ini 파일을 열어준다.

최상단에

-vm
C:/Program Files/Java/jdk1.8.0_111/bin/javaw.exe

를 추가해준다.

여기서 하단의 경로는 jdk8 (JAVA8)이 설치된 경로를 적어주어야 한다.

※ 스프링 부트 1.5.X 까지는 JDK 6과 7을 지원했다. 그러나 스프링 부트 2.0(스프링 프레임워크 5.0 적용) 부터 JDK 8 이상 사용이 강제되었다.

출처 – http://honeymon.io/tech/2019/06/17/spring-boot-2-start.html

 

그리고 저장 후 재실행..!!

 

정상적으로 실행되는 것을 확인 할 수 있다.

 

프로젝트를 시작(관련 파일, 소스)할 경로를 지정해주고 Launch 를 클릭해주면 된다.

 

익숙(?)한 이클릭스 베이스의 작업환경…!!

다음 포스팅은… 실제로.. 위에서 설치한 Spring Tool Suite 에

Spring Boot를 설치하여.. Hello Java!! 를 띄.. 아니.. Hello Spring Boot!! 인가?

2 글이 마음에 드셨다면 하트 꾸욱~!!

스프링에서 JSONObject return 하기

데이터 요청에 따른 반환 방식중 내가 익숙한 JSON 으로 return 하는 경우가 있고,

스프링프레임웍을 프로젝트를 생성할 때마다 매번 셋팅법을 찾으러 다니기 귀찮아서 작성…

 

  1. pom.xml 추가
<!-- JSONObject -->
<dependency>
	<groupId>net.sf.json-lib</groupId>
	<artifactId>json-lib</artifactId>
	<version>2.4</version>
	<classifier>jdk15</classifier>
</dependency>

<!-- return JSON -->
<dependency>
	<groupId>com.fasterxml.jackson.core</groupId>
	<artifactId>jackson-databind</artifactId>
	<version>2.5.0</version>
</dependency>

2. Controller 코드 작성

@RequestMapping(value="/getTest")
@ResponseBody
public JSONObject getTest(HttpServletRequest request, HttpServletResponse response) {
   JSONObject jsonObj = new JSONObject();
   jsonObj.put("testKey", "testVal");
   return jsonObj;
}

@RequestMapping(value="/getList")
@ResponseBody
public JSONArray getList(@ModelAttribute String param) {
	ArrayList<TestInfoVO> rList = apiService.getList(param);
	JSONArray jsonArray = JSONArray.fromObject(rList);
	return jsonArray;
}

 

이렇게 짧았었나… servlet-context.xml 도 막 만지고 했었던 것 같은데… 흠..

0 글이 마음에 드셨다면 하트 꾸욱~

스프링 태그 라이브러리 사용하기

1. pom.xml 추가

<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>

2. java 파일 작성

public class Title extends SimpleTagSupport{

private String title;

public void setTitle(String title) {
this.title = title;
}

@Override
public void doTag() throws JspException, IOException {
// TODO Auto-generated method stub
if(title == null) {
title = “”;
}
String str = “<h3>”+title+”</h3>”;
JspWriter out = getJspContext().getOut();
out.println(str);
super.doTag();
}
}

3. tld 작성

/WEB-INF/tlds 폴더 밑으로 작성함

custom.tld

<?xml version=”1.0″ encoding=”UTF-8″?>
<taglib xmlns=”http://java.sun.com/xml/ns/j2ee”
xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
xsi:schemaLocation=”http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd”
version=”2.0″>

<description>User Custom Tag Library</description>
<tlib-version>1.0</tlib-version>
<short-name>custom</short-name>
<tag>
<name>title</name>
<tag-class>com.ers.common.Title</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>title</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>

4. web.xml 추가

제일 하단에 jsp-config 추가

<jsp-config>
<taglib>
<taglib-uri>/WEB-INF/tlds/custom.tld</taglib-uri>
<taglib-location>/WEB-INF/tlds/custom.tld</taglib-location>
</taglib>
</jsp-config>

5. 사용하기

<%@ taglib prefix=”custom” uri=”/WE<custom:title title=”마이페이지” />

<custom:title title=”마이페이지” />

와 같이 사용 가능..

0 글이 마음에 드셨다면 하트 꾸욱~