实现效果:
你将可以通过访问http://localhost:8080/greeting来得到一个JSON格式的返回值
效果图如下:
需要准备:
1、大约十五分钟左右的时间。
2、一个你喜欢的开发工具,我们这里选用IntelliJ IDEA.
3、JDK 1.8 *或更高版本。
4、Gradle 4+
实现步骤:
新建一个Gradle项目
点击File->New Project出现如下界面:
选择Gradle,勾选Java,然后点击Next。出现如下界面:
这里分别填写组织名和工程名。可以自由填写。作者这里填写了的分别是:efeelture和hhulizhen_spring_helloworld,填好之后点击Next->Next->Next->finish。
然后选择在新的窗口中打开,这是会跳出一个弹窗,询问你对于Gradle的变更是否选择自动更新
这里建议选择Enable Auto-Import。
初建工程会同步一会儿,随之会显示出如下文件层级:
接下来建立如下目录层级如图:
更改gradle文件
build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.1.RELEASE")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
bootJar {
baseName = 'gs-rest-service'
version = '0.1.0'
}
group 'efeelture'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile("org.springframework.boot:spring-boot-starter-web")
testCompile('org.springframework.boot:spring-boot-starter-test')
}
Spring Boot gradle插件提供了许多方便的功能.
- 它搜索public static void main()方法来标记为可运行类
- 它提供了一个内置的依赖关系解析器,用于设置版本号以匹配Spring Boot依赖关系。你可以覆盖你想要的任何版本,但是它会默认使用Boot的选择版本。
现在已经设置了项目并构建了系统,接下来可以创建Web服务。
该服务将处理/ greeting的GET请求,可选地在查询字符串中使用名称参数。
GET请求应该在表示问候的正文中返回带有JSON的响应。
它应该看起来像这样:
{
"id": 1,
"content": "Hello, World!"
}
id字段是问候语的唯一标识符,content是问候语的文字表示。
为了对问候表示进行建模,可以创建一个资源表示类。
为id和内容数据提供一个普通的Java对象,其中包含字段,构造函数和访问器:
src/main/java/hello/Greeting.java
package hello;
public class Greeting {
private final long id;
private final String content;
public Greeting(long id, String content) {
this.id = id;
this.content = content;
}
public long getId() {
return id;
}
public String getContent() {
return content;
}
}
如在下面的步骤中看到的,Spring使用Jackson JSON库自动将类型为Greeting的实例编组为JSON。
接下来,将创建提供这些问候的资源控制器。
创建一个资源控制器
在Spring构建RESTful Web服务的方法中,HTTP请求由控制器处理。这些组件可以通过@RestController批注轻松识别,并且GreetingController通过返回Greeting类的新实例来处理/ greeting的GET请求:
src/main/java/hello/GreetingController.java
package hello;
import java.util.concurrent.atomic.AtomicLong;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
}
}
@RequestMapping注释可确保对/ greeting的HTTP请求映射到greeting()方法。
上面的例子没有指定GET与PUT,POST等等,因为@RequestMapping默认映射所有的HTTP操作。可以使用@RequestMapping(method = GET)来缩小这个映射。
@RequestParam将查询字符串参数名称的值绑定到greeting()方法的name参数中。如果请求中缺少name参数,则使用“World”的defaultValue。
方法体的实现基于计数器的下一个值创建并返回一个带有id和content属性的新Greeting对象,并使用问候模板格式化给定名称。
传统的MVC控制器和上面的RESTful Web服务控制器之间的一个主要区别在于HTTP响应主体的创建方式。这个RESTful Web服务控制器只需填充并返回一个Greeting对象,而不是依赖视图技术将问候数据的服务器端呈现呈现给HTML。对象数据将作为JSON直接写入HTTP响应。
此代码使用Spring 4的新的@RestController注释,该注释将类标记为控制器,其中每个方法都返回一个域对象而不是视图。它是@Controller和@ResponseBody的缩写。
Greeting对象必须转换为JSON。由于Spring的HTTP消息转换器支持,不需要手动执行此转换。由于Jackson 2位于类路径中,因此会自动选择Spring的MappingJackson2HttpMessageConverter将Greeting实例转换为JSON。
使应用程序可执行
src/main/java/hello/Application.java
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@SpringBootApplication是一个方便的注释,它增加了以下所有内容:
@Configuration将类标记为应用程序上下文的bean定义的来源。
@EnableAutoConfiguration通知Spring Boot根据类路径设置,其他bean和各种属性设置开始添加bean。
通常你会为Spring MVC应用程序添加@EnableWebMvc,但Spring Boot在类路径中看到spring-webmvc时会自动添加。这将该应用程序标记为Web应用程序并激活关键行为,例如设置DispatcherServlet。
@ComponentScan告诉Spring在hello包中查找其他组件,配置和服务,以便找到控制器。
main()方法使用Spring Boot的SpringApplication.run()方法启动应用程序。你有没有注意到没有一行XML?没有web.xml文件。这个Web应用程序是100%纯Java。
至此整个目录结构应该为如图:
接下来我们将运行它
右上角有个绿色的小三角箭头旁边有个下拉栏,点击它:
点击左上角绿色+号,选择Spring Boot
选择如图文件,点击OK、OK。
运行处会出现刚刚创建的工程:
点击运行(绿色小三角)
控制台显示:
显示已经运行成功!浏览器访问:http://localhost:8080/greeting
在URL中添加:?name=hhulizhen
转载请注明出处!