基于Spring4的全注解实现Restful开发
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">[Author]: kwu</span>
全注解实现Spring Restful开发,restful提供了快速的交互形式,以json的为数据传递的格式。
1、Restful控制类实现
package com.hexun.restful; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.mvc.method.annotation.AbstractJsonpResponseBodyAdvice; import com.hexun.bean.CharsForPvuvip; import com.hexun.dao.ChartDao; @RestController public class RestfulController { @ControllerAdvice static class JsonpAdvice extends AbstractJsonpResponseBodyAdvice { public JsonpAdvice() { super("callback"); } } @RequestMapping("/pv") public CharsForPvuvip getPvuvipByday(@RequestParam(value = "limit", defaultValue = "15") int limit) { CharsForPvuvip data = new CharsForPvuvip(); try { data = ChartDao.getPvuvip(limit); } catch (Exception e) { e.printStackTrace(); } return data; } }
省略了业务的DAO类,这里根据不同的需求来实现
2、POJO类
package com.hexun.bean; public class CharsForPvuvip { private String[] titles; private String[] days; private Integer[] uvs; private Integer[] pvs; private Integer[] ipcnts; public String[] getTitles() { return titles; } public void setTitles(String[] titles) { this.titles = titles; } public String[] getDays() { return days; } public void setDays(String[] days) { this.days = days; } public Integer[] getUvs() { return uvs; } public void setUvs(Integer[] uvs) { this.uvs = uvs; } public Integer[] getPvs() { return pvs; } public void setPvs(Integer[] pvs) { this.pvs = pvs; } public Integer[] getIpcnts() { return ipcnts; } public void setIpcnts(Integer[] ipcnts) { this.ipcnts = ipcnts; } }
package com.hexun.client; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.context.annotation.ComponentScan; @ComponentScan({"com.hexun.restful"}) @EnableAutoConfiguration public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
注解@ComponentScan 指定了控制类的路径,如果不指定spring就在当前路径扫描
4、pom.xml文件,依赖管理与用的是maven
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.ganymede</groupId> <artifactId>restful</artifactId> <version>0.0.1-SNAPSHOT</version> <name>restful</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.7</java.version> </properties> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.2.3.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.hexun.client.Application</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build> </project>
5、打包运行jar,在源码路径中输入
mvn assembly:assembly
6、运行jar执行,参数 --server.port=9088 为指定restful服务的端口
nohup java -jar restful-0.0.1-SNAPSHOT.jar --server.port=9088 2>&1 > restful.log &
运行截图如下:
restful 浏览器直接访问返回json数据
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。