import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { @RequestMapping("/") public String hello(){ return "hello"; } }
重新运行 main 方法启动项目,在浏览器中输入 localhost:8080,如果看到“hello”,那么恭喜你项目启动成功!Spring Boot 就是这么简单方便!端口号默认是8080,如果想要修改,可以在 application.properties 文件中使用 server.port 来人为指定端口,如811端口
server.port=811
常用注解
启动类的注解
@SpringBootApplication是一个复合注解。@SpringBootApplication=@SpringBootConfiguration+@EnableAutoConfiguration+@ComponentScan
@Configuration:@SpringBootConfiguration标注在类上,相当与把该类作为Spring的xml配置文件中的 作用为:配置Spring容器(应用上下文)
@EnableAutoConfiguration:开启自动配置。MATA-INF下的Spring.facotries的一些自动配置类
@ComponentScan:扫描注解。如果不配置basepackage,默认扫描@ComponentScan注解类的同级类和子目录下的所有类。所以要把启动类放到顶级目录。
控制层的注解
@RestController and @RequestMapping是SpringMvc的注解,不是SpringBoot的特有的
@RestController = @Controller+@ResponseBody
完整代码
//bean类 import com.fasterxml.jackson.annotation.*; import lombok.Data; import java.io.Serializable; import java.util.Date; @Data public class Person implements Serializable { private String userid; @JsonIgnore//字段不返回 private int age; @JsonFormat(pattern = "yyyy-MM-dd")//指定时间格式 private Date time; @JsonProperty("dizi")//指定别名 注意:使用别名后,请求中key也要使用别名 private String address; @JsonInclude(JsonInclude.Include.NON_NULL)//空字段不返回 private String mailbox; }
Controller类 import com.demo.bean.Person; import org.springframework.web.bind.annotation.*; @RestController public class HelloController { @RequestMapping("/") public String hello(){ return "hello"; } /** * 功能描述:restful协议。从路径中获取参数 * 1.接口中的参数定义,建议使用下划线隔开,不在使用驼峰 * 2.path="/{cityid}/{userid}",标识路径中那些参数 * 3.method=RequestMethod.GET,只处理get请求 * 4.@PathVariable("cityid"),从路径中取出参数值 * @return */ @RequestMapping(value = "/{cityid}/{userid}",method = RequestMethod.GET ) public Object test( @PathVariable("cityid")String cityid, @PathVariable("userid")String userid){ return cityid+"---"+userid; } /** *参数的默认值设置 * 添加@RequestParam 默认此参数是必填的 * @return */ @RequestMapping("/test02") public Object test02(@RequestParam(required = false,defaultValue = "2") Integer pageNo){ return pageNo; } /** * 测试@RequestBody。要从请求体中获取数据 * 有如下要求: * 1.数据要在请求体中 * 2.数据的格式为content-type 是值是application/json * @return */ @RequestMapping("/test03") public Object test03(@RequestBody Person person){ return person; } /** * 从请求头获取数据 * 一般情况下请求头中放置认证信息,例如access_token * @param access_token * @return */ @RequestMapping("/test04") public Object test04(@RequestHeader String access_token){ return access_token; } /** * 获取实体类的参数 * @JsonIgnore//字段不返回 * @JsonFormat(pattern = "yyyy-MM-dd")//指定时间格式 * @JsonProperty("")//指定别名 注意:使用别名后,请求中key也要使用别名 * @JsonInclude(JsonInclude.Include.NON_NULL)//空字段不返回 * @return */ @RequestMapping("/test05") public Object test05(@RequestBody Person person){ return person; } }
//pom.xml <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.5</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.5.1</version> </dependency> </dependencies>