上篇文章中生成的web服务,项目结构如下:
这是一个最简单的Spring Boot项目,项目结构说明如下:
DemoApplication:带有main()方法的启动类
static:放置静态资源文件
templates:放置前端模版文件
application.properties:配置文件
DemoApplicationTests:单元测试类
pom.xml:Maven构建说明文件
我们文章中的所有实例都是基于前后端分离的,static和templates文件夹没有用,可以删除,同时在com.tn666.demo下增加下面的文件夹:
dao:数据访问层
entity:实体类,对应数据库的表
service:业务逻辑层
vo:值对象,用于业务层之间的数据传递,可以和表对应,也可以不对应
controller:控制层,对外提供接口
util:工具类放在这里
修改后的工程结构如下:
现在我们把上篇文章中的helloSpringBoot方法移动到controller中:
1、创建HelloController类
1)在controller文件夹下创建HelloController类
2)在类上增加注解@RestController
2、把helloSpringBoot方法移动到HelloController类中
1)把DemoApplication类中的helloSpringBoot方法移动到HelloController类中
2)把DemoApplication类上面的@RestController注解删除
3、访问服务
访问http://localhost:8080,可以正常打印Hello Spring Boot
4、增加接口路径
通常情况下,一个项目中我们会写很多接口,这就要求通过路径和接口名称来区分不同的接口
1)在HelloController类上,增加注解@RequestMapping("hello")
2)把helloSpringBoot()方法上的@RequestMapping("/")修改为@RequestMapping(value = "get", method = RequestMethod.GET)或者@GetMapping("get")
5、调用接口
访问http://localhost:8080/hello/get,可以看到打印出Hello Spring Boot
6、注解说明
@RestController:相当于@ResponseBody + @Controller
@ResponseBody:该类中所有的API接口返回的数据,都会以Json字符串的形式返回给客户端,除了String,如果是String,则仍然返回String
@Controller:
1)定义了一个控制器类
2)将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实例化
@RequestMapping:一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示该类中的所有响应请求的方法都是以该地址作为父路径。
@GetMapping:这个注解默认封装了@RequestMapping(method = RequestMethod.GET)
若您觉得还可以,请帮忙点个赞👍,谢谢