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

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

上一篇:springboot后端整合vue通过路由实现跳转到不同的页面


下一篇:SpringMVC04--@RequestMapping的使用