출처 

SpringBoot  옵션 :  https://github.com/spring-projects/spring-boot/issues/1303


발생 원인 : 

https://okky.kr/article/35143

http://slidedeck.io/joohee/revealjs_mysql_options



정리

연결을 맺은 후 다음 쿼리까지 기다리는 시간이 있다. 

이 시간을 초과했을 때 연결이 끊어지게 된다. 

이는 끊어진 커넥션은 다시 커넥션 풀로 돌아가지 않는다는 것이다.

testOnBorrow, testOnIdle 의 기본값은 false이다.  

testOnBorrow and testOnIdle을 true로 변경해주고, 꼭 validationQuery는 적어줘야 한다.


파일 : application.properties


SpringBoot 1.3 

  spring.datasource.testOnBorrow=true

  spring.datasource.validationQuery=SELECT 1


SpringBoot 1.4+ 

  spring.datasource.tomcat.testOnBorrow=true 

  spring.datasource.tomcat.validationQuery=SELECT 1


라고 적혀있어서 해봤는데 안된다.. 
tomcat이 아닌가? 

일단 1.3 버전으로 다시 서버를 돌려놓고 기다리는 중....... 
1.3 버전으로 동작 하는구나. 
자동완성으로 안 나와도 사용 가능하다. 



Posted by 천류성

안녕하세요. (__)


이번은 Intellij IDE에 SpringBoot Project를 생성하겠습니다.  

그리고 간단한 API를 하나 만들어 보겠습니다.


먼저 앞서 설치한 Intellij를 실행합니다. 

새로운 프로젝트를 생성합니다. 


가운데 Spring initalizer를 선택 후 Next

프로젝트 정보는 개인에 맞도록 변경하시면 됩니다. 

전 그냥 설정 잡힌대로 진행하겠습니다. 

Gradle Proejct로 선택 변경 후 Next ! 


이제 이 서버가 어떤 성향의 서버인지 설정 하게됩니다. 가장 조촐하게 설정. 

Lombok + Web + MySQL + JDBC + MyBatis 각 항목들이 궁금하면 따로 검색을 해보세요. 

이후 Next !!! 


프로젝트 경로 설정 이후 Finish !!!! 


젤 처음 체크박스 Use auto-import를 선택 했습니다. 


Gradle 프로젝트로 생성했기 때문에 Gradle home이 보입니다. 

하지만 아직 Gradle을 설치하지 않았기에 비어있는 모습입니다. 

일단 그냥 OK로 진행합니다. 


첫 실행이 되면 보게 되는 하단 상태창입니다. 

좌측 창처럼 생긴 버튼을 클릭하면 사용할 수 있는 기능들이 나타납니다. 


이제 SpringBoot Framwork 기본 뼈대가 완성되었습니다. 

아직 아무것도 안했지만 Build를 한번 해보겠습니다. 

아무것도 안하고 빌드하는 이유는 이 프로그램이 정말 돌아가는지 확인하는 대는 손을 대지 않은 상태가 가장 좋다고 생각해서 입니다. 

이후 빌드가 안된다면 내가 뭐가 잘못해서겠죠? 


빌드 버튼을 누르고 나면 IDE하단에 빌드 중입니다. 하고 프로그레스 바가 나옵니다. 

빌드가 되었으니 실행되는지 한번 확인해봐야겠죠? 


실행을 눌렀을 때 아래와 같은 팝업을 보게 됩니다. 


실행에 대한 설정을 잡기위해 Edit Configurations....를 선택합니다.


좌측 상단 +버튼을 누르고 아래로 가다보면 Spring Boot이 있습니다. 

Spring Boot 선택. 


Name을 알아보기 쉽게 변경하고. 

Main Class, Use classpath of module 을 선택해줍니다. 

선택 버튼을 누르면 하나식 나오기 때문에 어렵지 않게 선택할 수 있습니다. 


그리고 하단의 Run 클릭 !! 

실행되는 과정을 볼 수 있습니다.


그리고 아래 사진과 같이 첫번째 에러 화면을 볼 수 있습니다. 

메시지를 보면

If you want an embedded databases please put a supported one on the classpath..... 

뭐 지원하는 데이터 베이스 classpath를 넣어라는 의미 같습니다. 



resource폴더 내부의 application.properties파일에 이렇게 추가 했습니다. 


spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource

spring.datasource.driverClassName=com.mysql.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/demo?allowMultiQueries=true

spring.datasource.username=root

spring.datasource.password=

spring.datasource.connectionProperties=useSSL=false;useUnicode=yes;characterEncoding=UTF-8;serverTimezone=UTC

spring.datasource.initSQL=SELECT 1

그리고 실행!!! 

아직 DB를 설치하지 않았지만 옵션 추가만으로 무난히 서버가 실행됩니다. 

8080 Port를 사용중이라고 표시도 됩니다. 


이제 간단한 API를 만들어 보겠습니다. 

package를 만들 위치를 선택하고 마우스 우클릭을 이용해 새로운 package를 만듭니다. 


단축키를 이용한 방법 

Alt + 1 : Project 창으로 이동 

Alt + insert 뭔가를 추가하기 위한 다축키 


controller package를 만들고 DemoController.java파일을 만들었습니다.

여기서 가장중요한 것들이 나옵니다. 

뭔지 모르겠는 어노테이션........... 복잡합니다. 

모르니 용감합니다. 서버가 잘 동작하기 위해서는 많은 지식이 필요합니다. 

일단 동작하는 서버를 만들기로 하겠습니다. 


코드를 좀 수정했습니다. 


@RestController
public class DemoController {

@RequestMapping(value="/demo", method=RequestMethod.GET)
public HashMap<String, Object> demo(){
HashMap<String, Object> response = new HashMap<String, Object>();
response.put("status", 200);
response.put("message", "success");
return response;
}
}

GET형식의 demo api를 만들었습니다. 

경로로 표현하면  http:localhost:8080/demo 가 되겠죠. 


그리고 다시 실행. 

실행은 우측 상단에 있는 초록색 > 버튼을 누르면 됩니다. 

실행 후 앞서 실행 성공과 같은 메시지가 나와야합니다. 


그럼 만든 api를 테스트 해봐야겠죠. 

Internet browser를 이용해도 되고 Chrome Browser의 플러그인 Rest api, Postman 뭐 아무거나 편하신걸 이용하시면 됩니다. 

저는 개발툴에 있는 걸 이용하겠습니다. 

하단에 실행이 잘 되었다는 메시지가 나와있네요. 


Tools의 Test RESTful web Service를 클릭하면 

하단에 창이 변경됩니다. 

거기에 Host/port 에 

http://localhost:8080

Path에 demo를 추가합니다. 

그리고 엔터를 누르면 

저희가 Hashmap에 담았던 메시지가 그대로 출력됩니다. 

메시지를 변경해서 테스트 해보세요. 


API 만들기 간단하죠? 

다음 편에는 Parameter 추가에 대해서 설명하겠습니다. 




Posted by 천류성
안녕하세요 (__) 

이번 주제는 Intellij IDE + SpringBoot Framework 을 이용한 서버 개발입니다. 

 

우선 JetBrains사의 Intellij를 다운받습니다. 

Eclipse와 다르게 판매 하고있는 IDE입니다. 

30일 Trial버전을 이용할 수 있으니 한번 사용해보시길 권장합니다. 


https://www.jetbrains.com/idea/

Ultimate 버전과 Community 버전 중 전 Ultimate버전을 받았습니다.


다운로드 완료 후 설치 진행. 

java, groovy, kt 을 사용할 수 있도록 체크 해줍니다. 

java는 SpringBoot을 사용하기 위해서 필수겠죠. 각 언어의 특성이나 사용법등은 한번쯤 찾아보시길 권장합니다. 

groovy and kt는 선택 안하셔도 됩니다.

 

설치 완료 후 실행 

첫 실행 시 설정정보에 대한 질문을 합니다. 

전 이전 버전 설치가 되어있어서 조금 다를 수도있는데 뭐든 선택하시면 됩니다. 

일단 초기 설치했다는 가정을 위해 이전 설정정보는 가져오지 않는걸로. 


다음은 라이센스 관련 팝업입니다. 

아직 구매를 안했으니 무료 버전으로 실행. 


전 Dracula 테마를 사용하겠습니다. 

테마는 자신의 스타일 대로 변경할 수 있고, 잘 만들어 진 테마를 다운받아 사용 할 수 있습니다. 

그담 오른쪽 아래 플러그인 설정으로

여기서 내가 어떤 작업을 하는지 선택하게됩니다. 

선택에 따라 구성이 달라지겠죠. Custom, Disable을 적절히 선택하시면 됩니다. 

이거저거 관심많으신 분들은 그냥 Next !!

전 관심이 없는 Scala, IDeaVim을 제외하고 모두 install을 하겠습니다. 

*IDeaVim 을 설치하면 단축키가 Vim과 같이 됩니다. Vim에 익숙하지 않은 분은 설치를 하지마세요!!!


전 단축키를 많이 스려고 노력하는 편이라 개발툴이 변경되면 적응하는데 시간이 오래 걸립니다. 그래서 관심있는 것들과 혹시 필요할까? 생각드는 것들을 모두 설치하고 봅니다. 

오른쪽 아래 Start!!!



앞으로 지겹도록 보게될 로딩 화면이 나타나게 됩니다. 


 


Posted by 천류성
이전버튼 1 이전버튼

블로그 이미지
.....
천류성

태그목록

공지사항

Yesterday2
Today0
Total15,588

달력

 « |  » 2018.09
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

최근에 달린 댓글

최근에 받은 트랙백

글 보관함


티스토리 툴바