没有合适的资源?快使用搜索试试~ 我知道了~
spring注解整理,及应用
需积分: 0 10 浏览量
2023-06-05
09:47:53
上传
评论
收藏 128KB DOC 举报
温馨提示
spring注解整理,及应用
资源推荐
资源详情
资源评论










一:spring 注解
1)@Controller
标识一个该类是 Spring MVC controller 处理器,用来创建处
理 http 请求的对象。
2)@RequestMapping
两种用法:
①@RequestMapping(value={ "/selectMemberById",
"/test" }, method = RequestMethod.
GET
)
可以访问/test 或 /selectMemberById
②@RequestMapping("/test")
类定义处: 提供初步的请求映射信息,相对于 WEB 应用的根
目录。方法处: 提供进一步的细分映射信息,相对于类定义处的
URL。(还有许多属性参数,不细讲,可自行查找)
3)@RestController
Rest:休息,休止符
Spring4 之后加入的注解,原来在@Controller 中返回 json
需要@ResponseBody 来配合,如果直接用@RestController 替代
@Controller 就不需要再配置@ResponseBody,默认返回 json 格
式。

4)@Service
用于标注业务层组件,以注解的方式把这个类注入到
spring 配置中
5)@Autowired
用来装配 bean,都可以写在字段上,或者方法上。默认
情况下必须要求依赖对象必须存在,如果要允许 null 值,可以
设 置 它 的 required 属 性 为 false , 例 如 :
@Autowired(required=false)
6)@RequestParam
用于将请求参数区数据映射到功能处理方法的参数上,其中
course_id 就是接口传递的参数,id 就是映射 course_id 的参数
名,也可以不写 value 属性
public Resp test(@RequestParam(value="course_id") Integer id){
return Resp.success(customerInfoService.fetch(id));
}
public String Hello(@RequestParam User user) {
return "hello" + user.getName()+":"+user.getAge();
}
@RequestMapping(value = "/hello1", method = RequestMethod.GET)
public String Hello(@RequestParam("name") String name);
7)@NonNull

@NotNull 是 JSR303(Bean 的校验框架)的注解,用于运
行时检查一个属性是否为空,如果为空则不合法。
@NonNull 是 JSR 305(缺陷检查框架)的注解,是告诉
编译器这个域不可能为空,当代码检查有空值时会给出一个风险
警告,目前这个注解只有 IDEA 支持。编译后的 class 文件中(不
会生成无参构造函数):解决方法: 此类情况,在
ParameterVO.java 中加一个注解@NoArgsConstructor
8)@AliasFor
顾名思义 @AliasFor 表示别名,它可以注解到自定义注解的
两个属性上,表示这两个互为别名,也就是说这两个属性其实同
一个含义。该标签存在的含义,从网上查发现有个点,
� 若 自定义注解有一个属性,且该属性命名上为了体现其含义,所以有些复杂,这样
调用方必须每次使用自定义注解的时候,都必须写明属性,然后设置,这样会比较
负责;
� 同时若自定义注解继承了另一个注解,要想让调用方能够设置继承过来的属性值,
就必须在自定义注解中重新定义一个属性,同时声明该属性是父注解某个属性的别
名。
9)@Resource(等同于@Autowired)
@Autowired 按 byType 自 动 注 入 , 而 @Resource 默 认 按
byName 自动注入,@Resource 有两个属性是比较重要的,分是
name 和 type,Spring 将@Resource 注解的 name 属性解析为
bean 的名字,而 type 属性则解析为 bean 的类型。所以如果使

用 name 属性,则使用 byName 的自动注入策略,而使用 type 属
性时则使用 byType 自动注入策略。如果既不指定 name 也不指定
type 属性,这时将通过反射机制使用 byName 自动注入策略。
10)@Qualifier
当一个接口有多个实现类时,就可以用此注解表明哪个实现
类才是我们所需要的,名称为我们之前定义@Service 注解的名
称之一。
11)@Scope
@Scope 注解是 springIoc 容器中的一个作用域,在 Spring
IoC 容器中具有以下几种作用域:基本作用域 singleton(单
例)、prototype(多例),Web 作用域(reqeust、session、
globalsession),自定义作用域。(@Scope 注解默认的
singleton 单例模式)
12) @Bean
产生一个 bean 的方法,并且交给 Spring 容器管理,相当于
配置文件中的 <bean id="" class=""/>
13) @Transactional

事务管理一般有编程式和声明式两种,编程式是直接在代码
中进行编写事物处理过程,而声名式则是通过注解方式或者是在
xml 文件中进行配置,相对编程式很方便。spring 所有的事务管
理策略类都继承自
org.springframework.transaction.PlatformTransactionMana
ger 接口
14)@ModelAttribute
当 ModelAttribute 设置了 value,方法返回的值会以这个
value 为 key,以参数接受到的值作为 value,存入到 Model 中,
如下面的方法执行之后,最终相当于
model.addAttribute(“user_name”, name);假如
@ModelAttribute 没有自定义 value,则相当于
model.addAttribute(“name”, name);
15)@Cacheable
用来标记缓存查询。可用用于方法或者类中,
当标记在一个方法上时表示该方法是支持缓存的,
当标记在一个类上时则表示该类所有的方法都是支持缓存的。
比如@Cacheable(value=”UserCache”) 标识的是当调用了
标记了这个注解的方法时,逻辑默认加上从缓存中获取结果的逻
剩余26页未读,继续阅读
资源评论


liuliancai_1982
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
