学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
然后我仔细看了下他的代码,发现Mybatis的使用确实没错,但发现代码中Lombok插件的@Builder注解使用有误。他只使用@Builder注解,导致实体类失去了默认的无参构造函数,最终导致Mybatis无法创建对象而引发了这个错误!其实他只要加上@NoArgsConstructor和@AllArgsConstructor注解,就可以解决他的问题。
第二天,我问了班里其他人的idea中使用Lombok插件是否正常,结果发现有部分人告诉我插件无法正常使用。我看了后,发现有些学生的idea版本是2020.3版本,与之前大多数人使用的2020.1版本不同,造成Lombok插件的安装配置也有所差异。在此,我给大家分享一下在不同版本中,idea安装和配置Lombok插件的具体过程。
三. Lombok插件简介
我们知道,Lombok插件是目前Java中使用频率非常高的一款插件,可以在编译阶段自动生成实体类的常用方法。示例如下:
// 没有使用Lombok插件的实体类,需要手动写getter和setter,以及构造方法等
public class Student {
private Integer id;
private String name;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
// 使用了Lombok插件的实体类
@Data // 此注解自动生成getter和setter,toString,equals和hashCode等方法
@NoArgsConstructor // 此注解生成无参构造函数
@AllArgsConstructor // 此注解生成全参构造函数
public class Student {
private Integer id;
private String name;
private Integer age;
}
从上面的代码中我们可以看出,使用了Lombok后Java实体类的源码会变得非常简洁,且易于修改。那么在idea中该如何安装和使用Lombok插件呢?
四. Lombok插件在idea中的安装和配置
4.1 安装
idea2020.2之前的版本需要自己安装Lombok插件,可以如下操作:
在ideidea2020.2后面的版本中已经集成了Lombok插件,不用手动下载安装。
4.2 配置
idea在2020.2之前的版本中的配置:
idea2020.2版本之后的配置:
1.先勾选上图中的地方;
2.添加如下配置,不同的版本可能显示不一样,在VM options后面的框中添加参数。-Djps.track.ap.dependencies=false
五. 基本使用
5.1 在项目中导入lombok依赖
- 在普通项目中导入
在项目中新建一个文件,将下载【下载地址】好的jar包lombok-1.18.12.jar复制到项目中,并添加为library
- 在maven项目中导入
在pom.xml中的依赖处添加依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
5.2 使用
Lombok插件的使用比较简单,就是在实体类中,只需要写入相应的属性,然后在类上面添加相应的注解即可。例如:
// 使用了Lombok插件的实体类
@Data // 此注解自动生成getter和setter,toString,equals和hashCode等方法
@NoArgsConstructor // 此注解生成无参构造函数
@AllArgsConstructor // 此注解生成全参构造函数
@Builder // 添加相应的实体类的构建器
public class Student {
private Integer id;
private String name;
private Integer age;
}
5.3 常用注解介绍
一、网安学习成长路线图
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、网安视频合集
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
三、精品网安学习书籍
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、网络安全源码合集+工具包
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
需要体系化学习资料的朋友,可以加我V获取:vip204888 (备注网络安全)
五、网络安全面试题
最后就是大家最关心的网络安全面试题板块
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!