Spring常用注解

本文详细介绍了Spring MVC中常用的注解,包括@Controller、@RestController、@Service、@Repository、@Component、@Autowired、@Resource等,以及它们的作用和用法。还讲解了装配顺序、@Required、@Qualifier、@Scope、初始化和销毁方法@PostConstruct和@PreDestroy,以及@RequestMapping、@GetMapping、@PostMapping等处理HTTP请求的注解。此外,还提到了参数绑定@RequestParam、缓存管理@Cacheable和@CacheEvict,以及Model相关的@ModelAttribute和@SessionAttributes。

@Controller

标识一个该类是 Spring MVC Controller 处理器,用来创建处理 HTTP 请求的对象。

@RestController = @Controller + @ResponseBody

Spring4 之后加入的注解,原来在 @Controller 中返回 json 需要 @ResponseBody 来配合,如果直接用 @RestController 替代 @Controller 就不需要再配置 @ResponseBody,默认返回 json 格式。

@Service

用于标注业务层组件,说白了就是加入你有一个用注解的方式把这个类注入到 spring 配置中。

@Repository

用于标注数据访问组件,即 DAO 组件。

@Component

泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@Autowired

用来装配bean,都可以写在字段上,或者方法上。
默认情况下必须要求依赖对象必须存在,如果要允许 null 值,可以设置它的 required 属性为 false,例如:@Autowired(required=false)。

@Resource

@Resource 的作用相当于 @Autowired,只不过 @Autowired 按 byType 自动注入,而 @Resource 默认按 byName 自动注入罢了。
@Resource 有两个属性是比较重要的,分是 name 和 type,Spring 将 @Resource 注解的 name 属性解析为 bean 的名字,而 type 属性则解析为 bean 的类型。所以如果使用 name 属性,则使用 byName 的自动注入策略,而使用 type 属性时则使用 byType 自动注入策略。如果既不指定 name 也不指定 type 属性,这时将通过反射机制使用 byName 自动注入策略。

@Resource装配顺序:

1、如果同时指定了 name 和 type,则从 Spring 上下文中找到唯一匹配的 bean 进行装配,找不到则抛出异常。
2、如果指定了 name,则从上下文中查找名称(id)匹配的 bean 进行装配,找不到则抛出异常。
3、如果指定了 type,则从上下文中找到类型匹配的唯一 bean 进行装配,找不到或者找到多个,都会抛出异常。
4、如果既没有指定 name,又没有指定 type,则自动按照 byName 方式进行装配;如果没有匹配,则回退为一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值