Spring boot
返回
json
数据
在做如下操作之前,我们对之前的 Hello 进行简单的修改,我们新建一个包 com.hpit.test.web 然后新建一个类
HelloControoler, 然后修改 App.java 类,主要是的这个类就是一个单纯的启动类。
主要代码如下:
App.java
iackage
com.hpit;
import
org.springframework.boot.SpringApplication;
import
org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* Hello world!
*/
//
其中
@SpringBootApplication
申明让
spring boot
自动给程序进行必要的配置,等价于以默认属性使用
//
@Configuration
,
@EnableAutoConfiguration
和
@ComponentScan
//@SpringBootApplication
public class
App {
public
static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
com.hpit.test.web.HelloController
:
package
com.hpit.test.web;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController;
@RestController
//
标记为:
restful
public class
HelloController {
@RequestMapping
(
"/"
)
public
String hello(){
return
"Hello world!"
;
}
}
运行代码和之前是一样的效果的。
我们在编写接口的时候,时常会有需求返回 json 数据,那么在 spring boot 应该怎么操作呢?主要是在 class 中
加入注解@RestController,。
返回
JSON
之步骤:
(1)编写一个实体类 Demo
(2)编写 DemoController;
(3)在 DemoController 加上@RestController 和@RequestMapping 注解;
(4)测试
具体代码如下:
com.hpit.test.bean.Demo :
package
com.hpit.test.bean;
/**
*
测试实体类
.
*
@author
Administrator
*
*/
public class
Demo {
private long
id
;
//
主键
.
private
String
name
;
//
测试名称
.
public long
getId() {
return
id
;
}
public void
setId(
long
id
) {
this
.
id
=
id
;
}
public
String getName() {
return
name
;
}
publicvoid
setName(String
name
) {
this
.
name
=
name
;
}
}
com.hpit.test.web.DemoController:
package
com.hpit.test.web;
import
org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController;
import
com.hpit.test.bean.Demo;
/**
*
测试
.
*
@author
Administrator
*
*/
@RestController
@RequestMapping
(
"/demo"
)
public class
DemoController {
/**
*
返回
demo
数据
:
*
请求地址:
http://127.0.0.1:8080/demo/getDemo
*
@return
*/
@RequestMapping
(
"/getDemo"
)
public
Demo getDemo(){
Demo
demo
=
new
Demo();
demo
.setId(1);
demo
.setName(
"Zjs"
);
return
demo
;
}
}
那么在浏览器访问地址:
http://127.0.0.1:8080/demo/getDemo
返回如下数据:
{
id
:
1
,
name
:
"Zjs"
}
是不是很神奇呢,其实 Spring Boot 也是引用了 JSON 解析包 Jackson,那么自然我们就可以在 Demo 对象上使
用 Jackson 提供的 json 属性的注解,对时间进行格式化,对一些字段进行忽略等等。
Spring boot 热部署
在编写代码的时候,你会发现我们只是简单把打印信息改变了下,就需要重新部署,如果是这样的编码方式,那
么我们估计一天下来之后就真的是打几个 Hello World 之后就下班了。那么如何解决热部署的问题呢?那就是
springloaded,加入如下配置:
<
plugin
>
<
groupId
>
org.springframework.boot
groupId
>
<
artifactId
>
spring-boot-maven-plugin
artifactId
>
<
dependencies
>
<
dependency
>
<
groupId
>
org.springframework
groupId
>
<
artifactId
>
springloaded
artifactId
>
<
version
>
1.2.4.RELEASE
version
>
dependency
>
dependencies
>
<
executions
>
<
execution
>
<
goals
>
<
goal
>
repackage
goal
>
goals
>
<
configuration
>
<
classifier
>
exec
classifier
>
configuration
>
execution
>
executions
>
plugin
>
如果是使用 spring-boot:run 的话,那么到此配置结束,现在你就可以体验 coding…coding 的爽了。
如果使用的 run as – java application 的话,那么还需要做一些处理哦:
把 spring-loader-1.2.4.RELEASE.jar 下载下来,放到项目的 lib 目录中,然后把 IDEA 的 run 参数里 VM 参数设
置为:
-javaagent:.\lib\springloaded-1.2.4.RELEASE.jar -noverify
然后启动就可以了,这样在 run as 的时候,也能进行热部署了。