学习目标:spring部分注解总结
[ 摘要] spring中的一些注解
学习内容:
@SneakyThrows注解的用途:抛出当前方法异常,包装成RuntimeExcepion,骗过编译器,使得调用点可以不用显示处理异常信息
@slf4j:用作日志输出的,一般在项目中每个类的开头加入该注解,可直接引用log.info()打印日志
@service:注解用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件中bean了
@configuration:可以用在建一个配置类,在配置类里建Bean,new个实体类
1.)@configuration不可以是final类型
2.)@configuration不可以是匿名类
3.)嵌套@configuration必须是静态类
@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnMissingBean(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@bean:
1.)java面向对象,对象有方法和属性,那么就要对象实例来调用方法和属性(即属性化)
2.)凡是有方法或属性的类都需要实例化,这样才能具体化去使用这些方法和属性
3.)规律:凡是子类及带有方法或属性的类都要加上注册bean到spring IOC的注解
4.)把bean理解成类的代理或者代言人(实际上确实是通过反射、代理来实现的),这样它就能代表 类拥有该拥有的东西了
5.)标记一个@符号,spring就会来看看,并且从这里面拿到一个bean或者给出一个bean
@NoArgsConstructor:生成一个无参数的构造方法
@AllArgsComstructor:生成一个包含所有变量的
@RequiredArgsConstructor:会生成一个包含常量,和标识了NotNull的变量的构造方法。生成的构造方法是私用的private
@ConditionalOnProperty:在springboot中有时候需要控制配置类是否生效,可以使用@ConditionalOnProperty注解来控制@Condition是否生效
@utilityClass:一般作用于工具类,在使用注解后,所有的方法和属性都会被加上static关键字,并且该类会创建一个私有的空参构造器
@intercepts:拦截类
@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常。
@RefreshScope:是Spring Cloud提供的一种特殊的scope实现,用来实现配置、实现热加载
@RequestMapping:是一个用来处理请求地址映射的注解,可用于类或者方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径;用于方法上,表示在类的父路径下追加方法上注解中的地址将会访问到该方法
@ResponseBody:注解表示该方法的返回的结果直接写入HTTP响应正文(ResponseBody)中,一般在异步获取数据时使用;在使用@RequsetMapping后,返回值通常解析为跳转路径,加上@Responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP响应正文中。例如,异步获取json数据,加上@responseBody注解后,就会直接返回json数据
@RequestBody:注解则是将HTTP请求正文插入方法中,使用合适的HTTPMEssageConverter将请求体写入某个对象中
@PathVariable:接收请求路径中占位符的值
学习时间:
- 周一至周五晚上 7 点—晚上9点
- 周六上午 9 点-上午 11 点
- 周日下午 3 点-下午 6 点
学习产出:
技术笔记 2 遍