java面试题超详细整理《spring篇》三

本文详细介绍了Spring框架中常用的注解,如@Controller用于声明控制层组件,@RestController则是其与@ResponseBody的组合,用于处理RESTful服务。@Component是通用注解,@Repository注解DAO层,@Service注解业务层。@ResponseBody用于将对象转化为JSON或XML响应,@RequestMapping用于映射请求地址。@Autowired实现自动装配,@PathVariable和@RequestParam分别用于处理URL变量和请求参数,@ModelAttribute则常用于数据绑定。理解这些注解对于高效开发Spring应用至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring 常用注解
将一个类声明为Spring的 bean :

@Controller:用来标注控制层组件,通过Controller注解标记的类就是一个SpringMVC对象,分发处理器会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping注解,可以把Request请求header部分的值绑定到方法的参数上。
@RestController:相当于Controller注解与ResponseBody的组合效果
@Component:通用的注解,可标注任意类为 Spring 组件。如果一个Bean不知道属于哪个层,可以使用
@Reponsitory:用来标注Dao层,在daoImpl类上注释
@Service:用来标注业务层
其他常用注解:

@ResponseBody:异步请求,该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入Response对象的body区,返回的值不是html页面,而是其他某种格式的数据时使用。
@RequestMapping:一个用来处理请求地址映射的注解,可以作用与类上或方法上,作用于类上标表示类的所有响应请求的方法都是以该地址作为父路径。
@Autowired:可以对类成员变量、方法以及构造函数进行标注,完成自动装配的工作。通过该注解来消除get、set方法。
@PathVariable:用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出url中的变量作为参数
@RequestParam:主要用于在SpringMVC控制层获取参数,类似于request.getParameter(“name”);
@ModelAttribute:该Controller的所有方法在调用前,限制性此方法,可用于注解和方法参数中,可以把这个ModelAttribute特性,应用在BaseController中,所有的Controller继承BaseCotroller,即可实现在调用Controller时,先执行@ModelAttribute方法。
@RestController与@Controller的区别是什么?
Controller 返回一个页面:单独使用 @Controller 不加 @ResponseBody的话一般使用在要返回一个视图的情况,这种情况属于比较传统的Spring MVC 的应用,对应于前后端不分离的情况。


@RestController (等价于@Controller +@ResponseBody)返回JSON 或 XML 形式数据:@RestController只返回对象,对象数据直接以 JSON 或 XML 形式写入 HTTP 响应(Response)中,这种情况属于 RESTful Web服务,这也是目前日常开发所接触的最常用的情况(前后端分离)。


@ResponseBody 注解的作用是将 Controller 的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到HTTP 响应(Response)对象的 body 中,通常用来返回 JSON 或者 XML 数据,返回 JSON 数据的情况比较多。


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值