通过Spring Boot,可以轻松地创建独立的,基于生产级别的基于Spring的应用程序,您可以“运行”它们。
我们对Spring平台和第三方库持固执己见的观点,因此您可以以最小的麻烦开始使用。大多数Spring Boot应用程序需要最少的Spring配置。
特征
创建独立的Spring应用程序
直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)
提供自以为是的“入门”依赖项,以简化构建配置
尽可能自动配置Spring和3rd Party库
提供可用于生产的功能,例如指标,运行状况检查和外部化配置
完全没有代码生成,也不需要XML配置
官网是这么说的,具体不深究。
第一个项目
打开idea创建,选择“Spring Initialzr”,创建Spring boot 项目
项目结构
创建controller“HelloControll”
package com.kevin.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloControll {
@RequestMapping("/hello")
public String hello() {
return "老程的自习社,欢迎关注";
}
}
RestController分析:
package org.springframework.web.bind.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.core.annotation.AliasFor;
import org.springframework.stereotype.Controller;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
@AliasFor(
annotation = Controller.class
)
String value() default "";
}
Spring 4.0引入了@RestController,这是一个控制器的专用版本,它是一个方便的注释,除了自动添加@Controller和@ResponseBody注释之外没有其他新魔法。
通过使用@RestController批注对控制器类进行注释,不再需要将@ResponseBody添加到所有请求映射方法中。@ResponseBody注释默认处于活动状态。
要在我们的示例中使用@RestController,我们需要做的就是将@Controller修改为@RestController并从每个方法中删除@ResponseBody。
我们不再需要将@ResponseBody添加到请求映射方法中。进行更改后,再次在服务器上运行应用程序会产生与以前相同的输出。
使用@RestController非常简单,这是从Spring v4.0开始创建MVC RESTful Web服务或基于SpringBoot 2的首选方法。
RequestMapping是什么?
- 注解
- 可以在控制器类的级别和/方法上使用
- WEB请求映射,看下图
完整代码
DemoAppiction.java
package com.kevin.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
HelloControll.java
package com.kevin.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloControll {
@RequestMapping("/hello")
public String hello() {
return "老程的自习社,欢迎关注";
}
}