Springboot的Controller中的参数接收以及@Mapper和@Repository的区别

目录

1、@PathVariable

2、@RequestParam

3、@RequestBody

4、无注解

5、@Repository 与 @Mapper的区别

6、解决使用@mapper接口时,注入mapper爆红问题


1、@PathVariable

获取路径参数。即url/{id}这种形式。

2、@RequestParam

获取查询参数。即url?name=这种形式

这两种方式结合:

http://localhost:80/demo/123?name=rk

@GetMapping("/demo/{id}")
public void demo(@PathVariable(name = "id") String id, @RequestParam(name = "name") String name) {
    System.out.println("id="+id);
    System.out.println("name="+name);
}

3、@RequestBody

Springboot的Controller中的参数接收以及@Mapper和@Repository的区别_第1张图片

Springboot的Controller中的参数接收以及@Mapper和@Repository的区别_第2张图片

4、无注解

Springboot的Controller中的参数接收以及@Mapper和@Repository的区别_第3张图片

方式1:

Springboot的Controller中的参数接收以及@Mapper和@Repository的区别_第4张图片

方式2:Springboot的Controller中的参数接收以及@Mapper和@Repository的区别_第5张图片

5、@Repository 与 @Mapper的区别

相同点 :@ Mapper和 @ Repository 都是作用在dao层接口,使得其生成代理对象bean,交给spring 容器管理

不同点:

        1、@ Mapper 不需要配置扫描地址,可以单独使用,如果有多个 mapper 文件的话,可以在项目启动类中加@ Mapper Scan (“ mapper 文件所在包”),这样就不需要每个 mapper 文件都加@ Mapper 注解了。每个mapper上就没有任何注解。

        2、@Repository不可以单独使用,否则会报错误,要想用,必须配置扫描地址(@MapperScannerConfigurer)

6、解决使用@mapper接口时,注入mapper爆红问题

Springboot的Controller中的参数接收以及@Mapper和@Repository的区别_第6张图片

        会出现这样的情况,但是并不影响使用。这里爆红是因为没有我们mapper接口上使用的@ Mapper,而@Autowired是spring的注解,提示找不到相应的bean。如果有强迫症的同学,可以使用@Resource注解,因为这个是JDK的注解。

        @Mapper--->@Resource                @Repository---->@Autowired

你可能感兴趣的:(常用小功能,Springboot,Spring框架,spring,boot,java,后端)