Spring boot学习6——web项目基本架构

项目架构

一般来说分为三层controller层、service层和dao层。作用分别是:

  • Controller:相当于spring mvc中的处理器,负责接收前端的信息,并调用相应的service层功能
  • Service层:核心业务层,会被Controller层的处理器调用,是前端请求的实际实现者
  • DAO层:负责调用数据库

对于不同类型的项目,工程的结构会有所不同:

  • 如果是单模块项目:一般在新建三个包,分别存放三层相关的文件
  • 如果是多模块项目:则三层分别对应三个模块

Controller层

一个controller类必须是一个bean,一般用@RestController或者@Controller ( + @ResponseBody )注解。一般用前者,具体前者等于后两个注解之和。两者区别参见:@RestController和@Controller

@RestController
public class HelloController {
	
}

处理器映射器与处理器

不同的前端请求对应不同的处理方法,web程序是根据请求的方法和path来将不同的请求映射到不同的处理器上的。这一过程通过@RequestMapping注解实现的:

  @RequestMapping(method = RequestMethod.POST, path = "/anno/insert")
  public ResponseEntity insertHelloer(@RequestBody Hello hello) {
    return ResponseEntity.ok(testService.insertHelloer(hello));
  }

这个insertHelloer方法其实就是一个处理器,它会处理满足以下条件的请求

  • 请求方法为POST
  • 请求URL能匹配http://服务器地址:端口号/anno/insert这个格式(后面可以加东西,前面匹配就行),即path为/anno/insert的合法请求。

每个controller类中必定有处理器,这些处理器其实就是一个个被@RequestMapping标注的方法。

@RequestMapping还可以注解controller类。如果某个controller下面的所有处理器都有一个统一的path,则可以把这个path写在controller类上面:

@RestController
@RequestMapping("/hello")
public class HelloController {
	
}

接收前端参数

controller需要处理请求,当然就需要获取前端传递过来的数据。实现前后端数据交互的注解主要有三个: @RequestParam、@PathVariable、@RequestBody。其中:

  • @RequestParam、@PathVariable用来接收简单类型的参数,如基本数据类型、String等
  • @RequestBody用来接收复杂的数据类型,一般是自定义类

三者的详细介绍参考@RequestParam、@PathVariable、@RequestBody

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值