控制层类上的注解、业务层的注入、URL映射、参数接收、返回数据及网页模板、RESTful

控制类的作用: 处理http的请求,从HTTP请求中获得信息,提取参数,并分发给不同的处理服务,处理之后封装成一个Model ,然后再把该Model返回给对应的View进行展示。

控制层类上的注解

@Controller:创建的类上添加注解@Controller表示这是一个控制层类,返回数据的方式既可以是JSON/xml数据,也可以是页面模板;【用的最多】
@RestController:创建的类上添加注解@Controller表示这是一个控制层类,返回数据的方式只能是JSON/xml数据;
两者的关系: @Controller+@ResponseBody=@RestController

业务层的注入

@Resource:默认byName 注入的方式,适用于接口只能有一个实现类,名称是@Service注解中标定的名称,如果通过 byName 的方式匹配不到,再按 byType 的方式去匹配。如@Resource(name=“companyService”),这里的“companyService”是业务层实现类里面@Service注解中标定的名称。【用的最多】
@Qualifier:byName 注入的方式,但名称是类名,适用于接口有多个实现类的场景,@Qualifier(name=“CompanyService”)
@Autowired: byType 注入方式,要求接口只能有一个实现类,Spring会按 byType的方式寻找接口的实现类,如果有多个实现类,Spring不知道要引入哪个类,自然就会报错。

URL映射

@RequestMapping:表示将特定的URL映射到指定的方法;如:@RequestMapping(“/CompanyModule”)
@GetMapping:只接收Get方式的URL映射,相当于@RequestMapping(value = “/test/hello”,method = RequestMethod.Get)
@PostMapping:只接收Post方式的URL映射,相当于@RequestMapping(value = “/test/hello”,method = RequestMethod.POST)
注意: URL映射中带不带“/”的问题,带不带都行,规范要求来说应该带,不加“/”会去当前路径下找

参数接收

1、JavaBean对象:没有任何注释,直接通过JavaBean对象来封装表单参数或者是请求url路径中的参数,如:public void save(Company company)

 @PostMapping("save")
 @ResponseBody
 public void save(Company company)
 {
     /**
      * 接收表单,保存公司信息
      * 参数接收:JavaBean对象的方式:没有任何注释,直接通过JavaBean对象来封装表单参数或者是请求url路径中的参数,如:public void save(Company company)
      * JavaBean对象的方式:一定要在后端有一个实体类才能接收到参数
      */
     csi.save(company);
 }

2、@RequestParam:用于获取Request参数,也就是URL中的最后一部分,形如:?xx=yy&zz=ww;

@GetMapping("/delete")
@ResponseBody
public void delete(@RequestParam String uuid)
{
    /**
     * 根据接收到的uuid字符串,删除对应的数据库记录
     * 参数接收:@RequestParam:用于获取Request参数,也就是URL中的最后一部分,形如:?xx=yy&zz=ww;
     * postman测试:http://localhost:8080/CompanyModule/delete?uuid=3416231899607189874
     */
    csi.delete(uuid);
}

3、@RequestBody:直接以String方式接收前端以Post方式传过来的JSON数据,在需要传递大量参数时,很有用,类似于JavaBean对象,差别在于,这种方式传递参数,不需要JavaBean对象来封装参数,适用于多条件查询场景,一般用Map集合来处理接收的参数,如下:public String findAllSimplePageMap(@RequestBody(required = false) Map<String,Object> reqMap)

@PostMapping("/multiQuery")
@ResponseBody
public Map<String,Object> multiQuery(@RequestBody(required = false) Map<String,Object> redMap){
    String a1 = redMap.get("a1").toString();
    String a2 = redMap.get("a2").toString();
    String a3 = redMap.get("a3").toString();
    String a4 = redMap.get("a4").toString();
    return redMap;
}

在这里插入图片描述
4、@PathVariable:用于获取URL变量:一般{ }中的变量名与方法中的形参名一致,用于RESTful设计风格;

返回数据及网页模板

@ResponseBody:返回JSON格式的数据,方法上不加该注解,返回的就是templates文件夹下面的网页,如果是返回网页模板,.html后缀可以不带,不过为了明显,建议还是带上.html;
返回公共网页: 如return “redirect:/newdemo.html”;这里的路径默认是指resource资源文件夹下public文件夹下的网页;
返回安全文件夹templates文件夹下的网页: 不区分是Thymeleaf网页模板还是普通网页,如return “mydemo.html”;

RESTful设计风格

特别提醒: 如果不是从资源考虑、对缓存的要求也不高,强烈建议不要采用RESTful风格的设计,至于原因,大家可以考虑有多查询条件的场景处理就明白是有多绕,你不是使用资源进行系统建模,不是以资源的角度来进行设计,自然遇到问题的时候就不会从资源的角度去考虑,最后和REST需要的资源第一位的观点冲突,把自己绕死,这种伪REST其实很要不得。
映射方式除了GetMapping、PostMapping,还有PutMapping、DeleteMapping ,这四种方式的作用如下:
1、PostMapping 用于增删改查的 增
2、GetMapping 用于增删改查的 查
3、PutMapping 用于增删改查的 改
4、DeleteMapping 用于增删改查的 删
提示:在用Post测试RESTful风格的接口时,有别传统的方式,只需注意两点就行
(1)参数的传递形式:不能带参数名称,直接在url后面带参数值就行,如下:
在这里插入图片描述
(2)中文转码方式:Postman不能直接传中文值,中文值需要转码,如下
在这里插入图片描述
转码成功后,就可以点“Send”了,如下:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Spring Boot 启动注解通常包括 @SpringBootApplication、@EnableAutoConfiguration 和 @ComponentScan。请求注解通常包括 @RestController、@GetMapping、@PostMapping 等。服务注解通常包括 @Service、@Autowired、@Transactional 等。请注意,这些注解只是常用的一些,具体使用会根据不同的场景和需求而有所不同。 ### 回答2: Spring Boot启动注解主要有: 1. @SpringBootApplication:标注在启动上,表示该是一个Spring Boot应用的入口,会自动扫描并加载所有配置、组件、启动Spring容器。 2. @EnableAutoConfiguration:启用自动配置功能,让Spring Boot根据应用的依赖情况自动配置Bean。 3. @ComponentScan:开启组件扫描,自动扫描被@Component、@Service、@Repository、@Controller等注解标记的,并注册为Bean。 请求注解主要有: 1. @RestController:标注在Controller上,表示该是一个Restful风格的控制器,会自动将方法的返回值转换为JSON格式返回给客户端。 2. @RequestMapping:定义Controller中的请求映射,将指定的URL映射到对应的处理方法上。 3. @PathVariable:用于获取请求URL中的占位符参数,将参数值绑定到方法中的参数上。 4. @RequestParam:用于获取请求参数的值,可以指定参数名、是否必需、默认值等。 5. @RequestBody:用于获取请求体的内容,常用于接收JSON数据,将请求体的内容绑定到方法的参数上。 服务注解主要有: 1. @Service:标注在服务实现上,表示该是一个服务组件,通常用于业务逻辑的处理。 2. @Autowired:自动装配依赖的Bean,Spring会根据型进行匹配,将匹配到的Bean注入到被标注的字段、方法参数、构造函数中。 3. @Transactional:开启事务管理,在方法上配置事务的属性,保证事务的一致性和完整性。 4. @Async:标注在方法上,表示该方法是一个异步方法,可以在调用时开启一个新的线程执行。 除了以上常用的注解,还有一些其他的注解,如:@Component、@Repository、@Configuration等,它们分别用于标注组件、持久、配置等。不同的注解起到不同的作用,帮助开发者更加方便地管理和配置Spring Boot应用。 ### 回答3: Spring Boot启动注解通常包括: 1. @SpringBootApplication:主要注解,用于标识该是一个Spring Boot应用的主启动,包含了@EnableAutoConfiguration、@ComponentScan和@Configuration三个注解。 2. @EnableAutoConfiguration:启用Spring Boot的自动配置机制,根据所依赖的和配置文件进行自动配置。 3. @ComponentScan:指定自动扫描哪些包下的注解并装配成Bean。 4. @Configuration:标识该是一个配置,定义Bean的创建和依赖关系。 请求注解通常包括: 1. @Controller:标识该是一个控制器,处理HTTP请求。 2. @RestController:标识该是一个RESTful风格的控制器,返回数据以JSON格式。 3. @RequestMapping:指定请求URL与处理方法的映射关系。 4. @PathVariable:获取URL路径中的参数值。 5. @RequestParam:获取请求参数的值。 服务注解通常包括: 1. @Service:标识该是一个服务组件,用于处理业务逻辑。 2. @Autowired:自动注入依赖的组件。 3. @Transactional:为方法添加事务管理。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郁慕斯-ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值