Spark framework는 가벼운 웹 프레임워크이고 JVM 기반에서 실행 가능하다.
jetty 서버가 내장되어 있으며 2.x 버전부터 람다를 사용하고 있어 자바8이 설치되어 있어야 한다.
spark 사용 빈도를 조사한 자료를 보니 1위가 개인 프로젝트였고, 2위가 REST API를 제공하기 위한 용도로 많이 사용한다고 한다.
확실히 프로젝트 셋팅하고 REST API를 만드는데 10분도 걸리지 않았기에 dummy API를 제공할 때 사용하면 될 것으로 보이기도 하다.
[spark 셋팅]
1. 이클립스에서 gradle 프로젝트 생성 (gradle plugin 설치 필요)
2. build.gradle 파일에 다음의 설정 추가
plugins {
id "java"
id "application"
}
group 'test.kuy'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
mainClassName = 'test.kyu.SparkApplication'
repositories {
jcenter()
mavenCentral()
}
dependencies {
compile 'com.sparkjava:spark-core:2.5'
compile 'com.sparkjava:spark-template-thymeleaf:2.3'
compile 'org.mongodb:mongodb-driver-reactivestreams:1.2.0'
compile group: 'com.google.code.gson', name: 'gson', version: '2.7'
testCompile group: 'junit', name: 'junit', version: '4.11'
}
3. 코드는 다음과 같이 추가
public class SparkApplication {
public static void main(String[] args) {
staticFileLocation("/public");
// HTML 형태
get("/hello", SparkApplication::helloWorld, new ThymeleafTemplateEngine());
// JSON 형태
get("/helloJson", (request, response) -> "Hello World", new Gson()::toJson);
}
public static ModelAndView helloWorld(Request req, Response res) {
Map params = new HashMap<>();
params.put("name", req.queryParams("name"));
return new ModelAndView(params, "hello");
}
}
4. 실행 후 http://localhost:4567/hello?name=test111 접속
'프로그래밍' 카테고리의 다른 글
4. [JPA] 엔티티 매니저 팩토리 (0) | 2017.08.10 |
---|---|
3. [JPA] 영속성 컨텍스트란? (0) | 2017.08.01 |
2. [JPA] 테스트 환경 (0) | 2017.07.21 |
1. [JPA] 사용 경험 (2) | 2017.07.21 |
iframe에서 parent 페이지 접근을 위해서는 document.domain 필요 (0) | 2016.08.29 |
문제를 통해 이해해보는 Javascript 기본 원리 (0) | 2016.07.29 |
Spring Controller 테스트 하기 (MockMvc 사용) (0) | 2016.05.18 |
Thread 생성 비용이 큰 이유 (0) | 2016.04.06 |