先来一个最简单的演示,代码如下:
这段代码每个介绍springboot的都会有,不能算抄袭吧!!
启动类代码 @SpringBootApplication public class Springboot04Application { public static void main(String[] args) { SpringApplication.run(Springboot04Application.class, args); } } controller代码 @RestController public class HelloController { @RequestMapping("/hello") public String hello() { return "learning springboot"; } }手动分割线--------------------------------------------------- @RestController这个注解等于@Controller+@ResponseBody 使用这个注解的话返回的数据类型默认就是json格式了
注解源码 @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller @ResponseBody public @interface RestController { String value() default ""; } |
启动日志
第一个框中是我们的映射路径,以及springboot提供的默认error页面
第二个框是启动端口
springboot自带的默认错误页面
访问 hello
接下来分别测试springboot返回list map pojo对象
代码如下,
@RequestMapping("/pojo")
public Pojo pojo() {
return new Pojo(15, "amy","girl");
}
@RequestMapping("/list")
public List list() {
List list = new ArrayList();
for (int i = 0; i < 10; i++) {
list.add(new Pojo(i, "pojo" + i,"girl"));
}
return list;
}
@RequestMapping("/map")
public Map map() {
Map map = new HashMap();
for (int i = 0; i < 10; i++) {
map.put(i, new Pojo(i, "pojo--" + i,"girl"));
}
return map;
}
测试结果
显示结果是因为使用了谷歌浏览器的Fe助手,可以自动格式化数据。
如果什么都没有的话显示的数据就是这种的 一长串的json格式的字符串
{"0":{"id":0,"name":"pojo--0","sex":"girl"},"1":{"id":1,"name":"pojo--1","sex":"girl"}, "2":{"id":2,"name":"pojo--2","sex":"girl"},"3":{"id":3,"name":"pojo--3","sex":"girl"}, "4":{"id":4,"name":"pojo--4","sex":"girl"},"5":{"id":5,"name":"pojo--5","sex":"girl"}, "6":{"id":6,"name":"pojo--6","sex":"girl"},"7":{"id":7,"name":"pojo--7","sex":"girl"}, "8":{"id":8,"name":"pojo--8","sex":"girl"},"9":{"id":9,"name":"pojo--9","sex":"girl"}} |
在说一下应用启动的几种方式
第一种就是直接右键运行 启动类了
第二种使用java -jar的方式运行
使用maven install后会生成两个jar包
在命令行中 java -jar 按tab建会自动补全的 不要自己手敲找刺激
第三种使用mvn命令运行
mvn spring-boot:run
最后在补充一点 关于@RequestMapping
@GetMapping("/list")
public List list() {
List list = new ArrayList();
for (int i = 0; i < 10; i++) {
list.add(new Pojo(i, "pojo" + i, "girl"));
}
return list;
}
@PostMapping("/map")
public Map map() {
Map map = new HashMap();
for (int i = 0; i < 10; i++) {
map.put(i, new Pojo(i, "pojo--" + i, "girl"));
}
return map;
}
映射时分别使用
@GetMapping 和 @PostMapping 表示限定请求方式 为get 和 post
这里使用谷歌浏览器的一个插件 restlet client 测试一下请求 (类似postman之类的工具,只不过restlet client 是内嵌在浏览器中的)
如果使用get方式请求map 则会报405错误
所以controller中使用哪个方式映射就的使用哪种方式访问 get post put delete等