【疑惑整理】39_2、注解使用

0、前置阅读

【疑惑整理】39_1、注解理解

1、分类

可供参考的标准有:框架类型、资源类型、类型定义、线程、值约束、权限、复写方法、返回值、自定义注解。

2、元注解

注解功能
@Target用于描述注解使用范围(即:被描述的注解可用在什么地方)
@Retention表示需要在什么级别(源文件、class、运行时)保存该注释信息,用于描述注解生命周期(即:被描述的注解在什么范围内有效)
@Documented表示使用该注解的元素应被javadoc或类似工具文档化,应用于类型声明,类型声明的注解会影响客户端对注解元素的使用
@Inherited表示一个注解类型会被自动继承,如果用户在类声明时查询注解类型,同时类声明中也没有这个类型注解,那么注解类型会自动查询该类父类,这个过程会不停地重复,直到该类型的注解被找到为止,或到达类结构的顶层(Object)

3、Spring

注解功能
@Required用于bean地setter方法,表示此属性必须,配置阶段注入,否则抛出BeanInitializationException
@Autowired对类成员变量、方法以及构造函数进行标注,完成自动装配。。 默认按类型装配,要求依赖对象必须存在,要允许null值,可设置required属性为false
@Resource标记程序所需资源,可应用于程序组件类或其中字段/方法。容器在初始化组件时将所请求资源的实例注入程序组件
@Qualifier和@Autowired一起使用,此注解可以让你对注入过程有更多控制。可以被用在单个构造器或方法参数上
@Configuration把一个类变成配置类,其作用和xml配置文件相同,表示此bean是一个Spring配置
Stereotype注解:@Component可代替其他三个,因为其他三个注解是被@Component标注的。四个实质上属于同一类注解,用法、功能相同,区别在于识别组件类型。
@Component表示带注释的类是“组件”。当使用基于注释的配置和类路径扫描时,这些类被视为自动检测的候选者。相当于在配置文件中配置Bean
@Controller处理由DispatcherServlet分发的请求,把用户请求数据经过业务处理层处理之后封装成一个Model,然后把该Model返回给对于View进行展示
@Service标注服务层,执行业务逻辑。被@Service注解的POJO类表示Service层实现
@Repository用于标注数据访问层,声明此类用于访问数据库,即DAO组件

4、SpringMVC

注解功能
@RequestMapping处理请求地址映射,指示Spring用哪个类/方法来处理请求动作
@ResponseBody将Controller方法返回结果直接写入到HTTP响应正文中(ResponseBody),一般异步获取数据时使用,通过HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区响应给客户端。使用该注解后不再用视图处理器,而是直接将数据写入到输入流中,效果等同于Response对象输出指定格式数据。
@PathVariable将请求URL中模板变量映射到功能处理方法的参数上
@CookieValue把请求Cookie数据映射到方法的参数上
@SessionAttributes允许有选择地指定Model中哪些属性需要转存到HttpSession对象中。
@ModelAttribute把请求参数绑定到Model对象
@RequestBody将http请求内容(字符串)通过HttpMessageConvert接口转换为JSON、XML等格式数据,再转换为Java对象绑定到Controller类方法参数上
@RequestHeader把请求header部分值映射到方法参数上
@RequestParam用于Spring MVC后台控制层获取参数,类似request.getParameter(“name”)
@RequestPart将文件之类的multipart绑定到参数上
主要校验注解(Hibernate-Validator )
@Null验证对象是否为 null
@NotNull验证对象是否不为 null
@AssertTrue验证 Boolean 对象是否为 true
@AssertFalse验证 Boolean 对象是否为 false
@Max(value)验证 Number 和 String 对象是否小于等于指定值
@Min(value)验证 Number 和 String 对象是否大于等于指定值
@DecimalMax(value)验证注解的元素值小于等于 @DecimalMax 指定的 value 值
@DecimalMin(value)验证注解的元素值大于等于 @DecimalMin 指定的 value 值
@Digits(integer,fraction)验证字符串是否符合指定格式的数字,integer 指定整数精度,fraction 指定小数精度
@Size(min,max)验证对象长度是否在给定的范围内
@Past验证 Date 和 Calendar 对象是否在当前时间之前
@Future验证 Date 和 Calendar 对象是否在当前时间之后
@Pattern验证 String 对象是否符合正则表达式的规则
@NotBlank检查字符串是不是 Null,被 Trim 的长度是否大于 0,只对字符串,且会去掉前后空格
@URL验证是否是合法的 url
@Email验证是否是合法的邮箱
@CreditCardNumber验证是否是合法的信用卡号
@Length(min,max)验证字符串的长度必须在指定范围内
@NotEmpty检查元素是否为 Null 或 Empty
@Range(min,max,message)验证属性值必须在合适的范围内

5、MyBatis

注解功能
@Insert映射增SQL 语句
@Update映射改SQL 语句
@Delete映射删SQL 语句
@Select映射查SQL 语句
@InsertProvider映射增动态 SQL 语句
@UpdateProvider映射改动态 SQL 语句
@DeleteProvider映射删动态 SQL 语句
@SelectProvider映射查动态 SQL 语句
@Result列和属性或字段之间单独结果映射
@Results结果映射列表,包含一个特别结果列如何映射到属性或字段的详情
@One负责类型单独属性映射,相当于
@Many映射复杂类型的集合属性,相当于
@Options提供配置选项附加值
@Param一个注解可传入多个参数,注解可被应用于映射器的方法参数来给每个参数一个名字
@ResultMap给@Select或@SelectProvider提供XML映射的id
@ResultType当使用处理器时启用此注解

6、Spring Boot

注解功能
@SpringBootApplication让Spring Boot自动给程序进行必要配置,等于@Configuration、@EnableAutoConfiguration和@ComponentScan三个配置
@Configuration相当于传统XML配置文件,可能有些第三方库需要用到XML文件,建议通过@Configuration作为项目配置主类–可通过@ImportResource注解加载XML配置文件
@EnableAutoConfiguration自动配置,尝试根据添加的JAR依赖自动配置Spring应用。也可以使用排除属性禁用
@ComponentScan定义扫描路径,从中找出标识需要装配类并自动装配到Spring的Bean容器中。同时默认加了@Controller、@Service、@Repository、@Component注解的类装配到Spring容器中。
@ResponseBody该注解修饰函数,会将结果直接填充到HTTP响应体中,一般用于构建RESTful API,一般配合@RequestMapping使用
@RestController@ResponseBody和@Controller的合集
@Import用来导入其他配置类
@ImportResource用来加载XML配置文件
@Repository可确保DAO或Repositories提供异常转译,这个注解修饰DAO或repositories类会被Component发现并配置,同时也不需要为它们提供XML配置项
@Value注入Spring Boot application.properties配置的属性值
@Qualifier限定描述符除了能根据名字进行注入,但能更细力度地控制如何选择候选者
@Inject等价于@Autowired,只是没有required属性

7、其他

注解功能
@Transactional注意此注解并不激活事务行为,仅仅是一个元数据,会被一些运行时基础设施来消费。对数据库数据进行批量或连表操作时,为保证数据一致性和正确性,则需添加事务管理机制进行管理。操作失败保证所有数据回滚到原状态。
@Schedule声明方法被定时调度,注解方法返回类型是void,并且不接受任何参数
@Async声明方法会在一个单独线程中执行。可接口参数,返回值类型可为void或Future
@ContextConfiguration声明测试使用配置文件,可指定加载上下文的类
@ExceptionHandler用于处理特定类或方法中异常的注释。
@ModelAttribute将方法参数或方法返回值绑定到命名模型的注释,公开给Web视图。
@ConditionalOnBean条件注解。当容器里有指定Bean条件下执行方法。
@ConditionalOnClass条件注解。当类路径下有指定类条件下执行方法。
@ConditionalOnExpression条件注解。基于SQL表达式作为判断条件。
@ConditionOnJava条件注解。基于JVM版本作为判断条件。
@ConditionOnWebApplication条件注解。当前项目是Web项目情况下执行方法。
@EnableAutoConfiguration自动载入应用程序需要的所有Bean,依赖于Spring Boot在路径中查找。

8、More

【分类】
1、分类整理Java注解,详细列表
【Spring注解】
2、Spring 最常用的 7 大类注解,史上最强整理!
3、Spring常用注解(收藏大全)
【Spring MVC】
4、Spring、SpringMVC中常用注解含义及用法
5、常用注解
【常见注解】
6、Spring boot注解(annotation)含义详解
7、Spring 注解大全与详解(实时更新中)
8、Spring 注解大全与详解
【MyBatis】
9、注解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值