SpringBoot的核心注解,归纳总结

SpringBoot核心注解

SpringBoot通过注解方式大大简化了Spring的大量配置文件,但是在使用注解的时候还是会有误区,那么下面就来归纳总结一下:

一、启动类 Application

1)@SpringBootApplication
  SpringBoot启动类,让spring boot自动给程序进行必要的配置。
等同于:@Configuration + @EnableAutoConfiguration + @ComponentScan组合。

二、控制器类 Controller

2)@RestController
  等同于:@Controller+@ResponseBody组合,返回JSON、XML或自定义mediaType内容 到页面。使用@RestController无法返回JSP、HTML页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

@Controller: 控制层,用于返回页面(JSP、HTML)
在spring项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping
@ResponseBody:将Controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body去,通常用来返回JSON或者XML

3)@Autowired
  自动注入,对类成员变量、方法及构造函数进行标注,完成自动装配的工作;当加上(required=false)时,就算找不到bean也不报错。

4)@PostMapping、@GetMapping
 Ⅰ、@PostMapping: 请求会从body部分拿到数据,用户不会看到传输数据;
  它是@RequestMapping(method = RequestMethod.POST)的缩写。
 Ⅱ、@GetMapping: 直接从URL获得数据,类似www.xxx.com/?id=1形式传输;
  它是@RequestMapping(method = RequestMethod.GET)的缩写。

Get与Post请求的区别?
① Get提交的数据通过URL传递,Post请求不会显示在地址栏;
② Get请求传输的数据有限制,Post请求没有限制;
③ Post请求的安全性高于Get,因为Get请求提交数据会暴露在URL中;
④ Get会被浏览器缓存,Post不存在缓存;

5)@RequestMapping
  这是用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。可直接:@RequestMapping("/xxxx/xx")。

该注解有六个属性:
① value:指定请求的实际地址,地址可以是URI Template 模式 method:指定请求的method类型
② params:指定request中必须包含某些参数值是,才让该方法处理。
③ headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。
④ GET、POST、PUT、DELETE等
⑤ consumes:指定处理请求的提交内容类型(Content-Type),如application/json,text/html;
⑥ produces:指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。

6)@ResponseBody
  表示该方法的返回结果直接写入HTTP Response Body中,一般在异步获取数据时使用,可直接返回Json数据。该注解一般会配合@RequestMapping一起使用,如果不加@ResponseBody返回值通常解析为跳转路径。
  :如果控制器类使用@RestController,则方法上不需要加@ResponseBody。

7)@RequestBody
  用来接收前端传递给后端的Json字符串中的数据的(请求体中的数据的),放在参数前;使用@RequestBody接收数据时,必须用POST方式提交数据,不能使用GET方式提交。
  在后端的同一个接收方法里,@RequestBody与@RequestParam可以同时使用,@RequestBody最多只能有一个,而@RequestParam可以有多个。

三、业务层 Service

8)@Service
  标注业务层组件,用在业务层实现类上(ServiceImpl结尾的类)。
  可以直接使用@Service(默认别名就是当前类名),也可以@Service("/xxx")或@Service(value = “/xxx”)。

四、数据访问层 JdbcDao

9)@Repository
  用于数据访问层(持久层),即DAO组件;(JdbcDao结尾的类)
10)@Resource
  默认按 byName自动注入,可以注入数据库资源。如:@Resource(name=“xxx”)。

@Autowired和@Resource的联系与区别?
联系:都可以用来装配bean,作用一致。
区别:①@Autowired按byType自动注入,而@Resource默认按 byName自动注入;
   ②@Resource有两个重要属性,分别是name和type,Spring将@Resource注解的name属性解析为bean的名字,而type属性则解析为bean的类型。



11)@Component:
泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注;
12)@ComponentScan
表示将该类自动发现扫描组件。如果扫描到有@Component、@Controller、@Service等这些注解的类,并注册为Bean,可以自动收集所有的Spring组件,包括@Configuration类。如果没有配置的话,Spring Boot会扫描启动类所在包下以及子包下的使用了@Service,@Repository等注解的类。
13)@Configuration
指出该类是 Bean 配置的信息源,相当于XML中的,一般加在主类上;
14)@Bean
相当于XML中的,放在方法的上面,而不是类,意思是产生一个bean,并交给spring管理。
15)@EnableAutoConfiguration
让 Spring Boot 根据应用所声明的依赖来对 Spring 框架进行自动配置,一般加在主类上;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值