Spring Boot是一个独立的、工业级的( production-grade) 基于Spring框架的应用。Spring Boot非常开放,在Spring Paltform的基础上集成了很多第三方类库,使得Spring Boot开发非常简单,开箱即用,只需要简单的配置,就可以把应用跑起来。实际上,java的发展是比较缓慢的,也比较臃肿,如果你想搭建一个java ee的简单例子,不依赖于任何框架,实际上,就算依赖其他框架,搭建的步骤和配置都非常繁琐,感谢Pivotal,提供了如此便利、稳定的框架。
让我们来看看Python搭建一个Web的Helloworld,就知道有多简单了。
好了,打开PyCharm,创建一个Python项目,这里略过。
想看看项目骨架,项目命名为WebFlash
/templates/hello.html
Hello from Flask
{% if name %}
Hello {{ name }}!
{% else %}
Hello, World!
{% endif %}
__init__.py
from flask import render_template
from flask import Flask
app = Flask(__name__)
@app.route('/hello/')
@app.route('/hello/')
def hello(name=None):
return render_template('hello.html', name=name)
if __name__ == '__main__':
app.run()
在PyCharm里面启动项目
能看到应用已经跑起来了,通过浏览器访问页面http://127.0.0.1:5000/hello
Nice,一个Python的hello world就跑起来了。
搭建Spring Boot需要依赖JDK和Maven,当然也可以用Gradle,这里我用了Maven,开发工具是STS。
用STS创建一个Spring Boot项目,也可以通过curl的方式下载项目骨架,这里略过。
SpringRestdocsApplication.java如下:
package com.chen.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringRestdocsApplication {
public static void main(String[] args) {
SpringApplication.run(SpringRestdocsApplication.class, args);
}
}
HomeController.java如下:
package com.chen.demo;
import java.util.Collections;
import java.util.Map;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HomeController {
@GetMapping("/")
public Map greeting() {
return Collections.singletonMap("message", "Hello World");
}
}
pom.xml如下:
4.0.0
com.chen
demo
0.0.1
jar
spring-restdocs
Spring API RestDocs for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.5.10.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.restdocs
spring-restdocs-mockmvc
test
org.springframework.boot
spring-boot-maven-plugin
org.asciidoctor
asciidoctor-maven-plugin
generate-docs
prepare-package
process-asciidoc
index.adoc
html
${project.build.directory}/snippets
到项目的工程目录下,执行
mvn clean package
构建完成之后,demo-0.0.1.jar就生成在/target目录下了,执行以下命令:
java -jar target/demo-0.0.1.jar
启动完成后,通过curl命令访问服务或者浏览器访问:
curl http://localhost:8080
一个简单的Spring Boot微服务就完成了,非常的简单,我们甚至都没看到Tomcat、Jetty,它们是怎么去加载的呢?恩,刨根问底,下篇继续。