那些不为人知的注解...............(二)

首先声明一下,本人经验不足,如有不对之处,请多多包含。
1、本篇第20名:@JsonInclude
当这个注解时,我们得知道它是干什么的?比如当我们如果我们的字段里有返回前端为Null的情况,那么就不要返回了。那么我们就可以在我们的实体类里用到这个注解了。这个注解就是用来在实体类序列化成json的时候,加了注解的字段不去序列化该字段
@JsonInclude.Include.ALWAYS 这个呢是总是去序列化它,那就加不加都不影响了。
@JsonInclude(JsonInclude.Include.NON_NULL)这个才是我们今天想要的,就是当字段返回前端时为Null的情况,就不去序列话这个字段,那么就不会出现Null的情况。
2、本篇第19名:@ExcelIgnore
其实当我们如果在不知道注解什么作用的时候,可以猜一下,因为很多的注解其实尤如其名。比这个,是不是有个ignore,也就是忽视的意思,那么忽视什么呢?那就看它是放在哪里的,对吧!比如放在实体类里面,那就是忽视实体类里的字段嘛。
3、本篇第18名:@Data
首先我们翻译一下data是什么意思?也就是数据的意思。有什么用呢?
在实体类的编写过程中,在以前我们是不是经常编写大量的get和set方法,就是有了代码生成器,也是这样,而且看起来非常的冗杂。但是现在spring中提供了@Data注解,只要我们在类中写入@Data注解就行了。@Data可以为类提供读写功能和equeals(),tostring(),hashcode()方法。
4、本篇第17名:@RequestMapping
它是一个用来处理请求地址映射的注解,可用于类或方法上。它会将http请求映射到mvc和rest上面。
RequestMapping注解有六个属性,下面分成三类进行说明。
value, method
value: 指定请求的实际地址,指定的地址可以是具体地址、可以RestFul动态获取、也可以使用正则设置;
method: 指定请求的method类型, 分为GET、POST、PUT、DELETE等;这个是用的最多的,通常写接口就是用的这个。
consumes,produces
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
params,headers
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
这里转自@伟大的豪哥。
5、本篇第16名:@RequestBody
我个人理解呢,它就是一个用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);
但是@RequestBody一个请求只有一个它。请求和@RequestBody 对应的。
多的也不懂,就写折磨多,如果小伙伴们有兴趣去看源码的话,
[justry_deng]https://blog.csdn.net/justry_deng/article/details/80972817
这个人的博客是个不错的选择。
6、本篇第15名:@configuration
其实这个注解就是一个用来定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContextAnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
7、本篇第14日:@RequestParm
这个的作用和@RequestParm差不多,但是它们有一个很大的区别
在GET请求中,一般不能使用@RequestBody。
在POST请求,可以使用@RequestBody和@RequestParam,但是如果使用@RequestBody,对于参数转化的配置必须统一。
@RequesrtBody 是一对一,一个请求—》一个@RequesrtBody
@RequestParm 是可以一对多的,一个请求—》多个@RequestParm
8、本篇第13名:@ResponseBody
@ResponseBody注解的作用是将controller的方法返回的对象 通过适当的转换器 转换为指定的格式之后,写入到response对象的body区(响应体中),通常用来返回JSON数据或者是XML.
9、本篇第12名:@ExceptionHandler
@ExceptionHandler可以用来统一处理方法抛出的异常,给这个发法加上@ExceptionHandler注解,这个方法就会处理类中其他方法(被@RequestMapping注解)抛出的异常。当异常发生时,Spring会选择最接近抛出异常的处理方法。简单来说,就是报错的时候抛出异常。
10、本篇第11名:@SpringBootApplication
@SpringBootApplication来标注这是一个springboot的应用,被标注的类是一个主程序, SpringApplication.run(App.class, args);传入的类App.class必须是被@SpringBootApplication标注的类。

@SpringBootApplication是一个组合注解,其作用相当于以下几个注解的组合,使用@SpringbootApplication注解可以解决根类或者配置类(我自己的说法,就是main所在类)头上注解过多的问题,一个@SpringbootApplication相当于@Configuration,@EnableAutoConfiguration和 @ComponentScan 并具有他们的默认属性值:
@Configuration(或者@SprootbootConfiguration) 配置类,对应配置文件,本质上是一个@Componet,只是更有意义,见名知意
@EnableAutoConfiguration:开启自动配置,将主配置类所在包及其下面所有后代包的所有注解扫庙 @ComponentScan :配置需要扫描的包
11、本篇第10名:@select
当然这里的@update @delete @insert @select 对应的增删改查
看名字,就知道是选择的意思他的大体意思也是选择。它是作用于在我们编写sql语句的时候使用。
@select注解模糊查询_Mybatis在注解上实现动态SQL,意思就是查询的意思。
12、本篇第9名:@param
@param这个注解的作用是1、用来传递参数,与sql里面的字段对应。2、如果传递的参数为多个时,你就需要用到@param了。
13、本篇第8名:@Mapper
作用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类,如果你是想写的接口实现类,就必须加上@Mapper才是。
添加位置:接口类上面
14、本篇第7名:@MapperScan
作用:指定要变成实现类的接口所在的包,然后包下面的所有接口在编译之后都会生成相应的实现类
添加位置:是在Springboot启动类上面添加,
添加@MapperScan(“com.winter.dao”)注解以后,com.winter.dao包下面的接口类,在编译之后都会生成相应的实现类,当然如果你没加,那么就要在你的接口实现类里面加上你的@Mapper
15、本篇第6名:@Autowired
@Autowired 是一个注释,它可以对类成员变量、方法及构造函数进行标注,让 spring 完成 bean 自动装配的工作。
spring可以自动帮你把Bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。
@Autowired注释进行自动注入时,spring容器中匹配的候选Bean数目必须有且仅有一个。
当找不到一个匹配的Bean时,spring容器将抛出BeanCreationException异常,并指出必须至少拥有一个匹配的Bean。如果spring容器中拥有多个候选Bean,spring容器在启动时也会抛BeanCreationException
这个时候就可以借助@Qualifier注释指定注入Bean的名称,这样@Autowired遇到多个候选Bean的问题也就解决了。
其实简单点就是使用注解Autowired可以让spring自动完成bean的装配工作。@Autowired是一种注解,可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作。@Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上,也可以放在任意方法上表示,自动执行当前方法,如果方法有参数,会在IOC容器中自动寻找同类型参数为其传值。并且可以消除get,set方法。
16、本篇第5名:@Slf4j
@Slf4j是用作日志输出的,一般会在项目每个类的开头加入该注解,如果不写下面这段代码,并且想用log
如果不写这注解又想实现日志打印,那么就要用 private final Logger logger = LoggerFactory.getLogger(当前类名.class);代替。 它们两者是相等的,你说你想写那个嘛。
17、本篇第四名:@Component(链接:https://www.jianshu.com/p/8d3f5cede6bf)
开发中难免会遇到这个这个注解@Component
@Controller 控制器(注入服务)
用于标注控制层,相当于struts中的action层
@Service 服务(注入dao)
用于标注服务层,主要用来进行业务的逻辑处理
@Repository(实现dao访问)
用于标注数据访问层,也可以说用于标注数据访问组件,即DAO组件
.@Component (把普通pojo实例化到spring容器中,相当于配置文件中的 )
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
@component是spring中的一个注解,它的作用就是实现bean的注入
18、本篇第三名:@bean
Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中;
19、本篇第二名:@Configuration
 从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。
[yellow_ls](https://blog.csdn.net/u014199143/article/details/80692685)
20、本篇第一名:@override
1、可以告诉读你代码的人,这是对它父类方法的重写,其实很多代码规范没有为什么,规范就是规范,代码的可读性还是很重要的。
2、 编译器可以给你验证@Override下面的方法名称是否是你父类中所有的,如果没有就会报错。
比如当你想要在子类中重写父类的一个方法,但是你把名字打错了,当你写了@Override编译器会提示你,就会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值