赞
踩
先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
在这样一个时代背景下,Spring 团队在现有Spring框架的基础上发布了一个新的开发框架—Spring Boot。该框架是由Spring Pivotal 团队提供的全新框架,其设计目的主要是用来简化Java Web项目的初始搭建,配置以及开发过程,为我们的开发带来极大遍历!
2. SpringBoot简介
那么SpringBoot到底是什么呢?我们来看看官网对SpringBoot的介绍吧,如下图所示:
从上面的介绍中可知,Spring Boot可以帮助我们轻松地创建出一个基于Spring,且能够直接运行的独立的生产级应用程序。
而且利用SpringBoot可以很容易的整合Spring和其他第三方库,更重要的是SpringBoot采用了“约定大于配置”的思想理念,大量的减少了配置文件的使用,可以让我们的项目快速的开发部署运行起来。
并且SpringBoot自身就内嵌了Tomcat,Jetty,Undertow等Web服务器,可以让我们灵活的选择到底该生成什么类型的应用程序,常见项目类型如下:
①. jar包程序;
②. war包程序;
另外SpringBoot中还提供了一个可以运行项目的“spring script”的命令行工具,方便我们快速方便的启动项目。
3. Spring Boot要点分析
接下来 壹哥 带各位来看看SpringBoot的主要特点,了解一下SpringBoot到底有哪些特性,看看这些新特性能不能激发出我们学习SpringBoot的欲望吧。
3.1 特点
我们先看一张SpringBoot官网关于其特点的截图,如下:
这些特点我给大家翻译总结如下:
- SpringBoot可以创建独立的Spring应用程序;
- SpringBoot中直接内嵌了Tomcat、Jetty或Undertow(无需部署WAR文件)等web服务器;
- SpringBoot提供了“初始”的POM文件内容,以简化Maven配置;
- SpringBoot可以尽可能自动地配置Spring;
- SpringBoot可以提供生产就绪的功能,如指标,健康检查和外部化配置等功能;
- SpringBoot可以绝对无代码生成,也不需要XML配置。
3.2 优点
根据上述特点,我们就可以提取出SpringBoot的主要优点了,如下图所示:
- 快速构建项目,缩短开发时间**;**
- 对主流开发框架的无配置集成;
- 易于理解和开发Spring应用;
- 项目可独立运行,无需依赖外部的 Servlet 容器;
- 提供运行时的应用监控;
- 极大地提高了开发、部署效率;
- 与云计算的天然集成。
3.3 缺点
当然,任何一个技术都不可能是十全十美的,SpringBoot也不例外,他虽然是个王者,但也有缺点:
- 版本迭代速度很快,一些模块改动很大;
- 由于不用自己做配置,报错时很难定位;
- 网上现成的解决方案比较少。
我们学习一个技术,肯定要综合考虑,只要这个技术能够做到瑕不掩瑜,那就可以考虑使用。更何况SpringBoot的有点明显大于缺点,所以我们就这么愉快地决定啦,SpringBoot,学起来!
4. 关于”约定大于配置“(重点)
在上面 壹哥 给大家提到了一个思想,即”约定大于配置“,那什么是约定大于配置呢?我们先来看看比较正式的定义:
**约定大于配置(Convention Over Configuration),也称作按约定编程,这是一种软件设计范式。目的在于减少软件开发人员所需要做出的决定数量,从而获得简单灵活的好处,开发人员仅仅需要规定应用中不符合约定的部分。**约定大于配置也被称为习惯优于配置、约定优于配置等。
能不能说人话,上面的根本看不懂啊!那,好吧,壹哥 再通俗的解释一下咯。
**其实所谓的约定大于配置,就是指我们在开发中,有些xml或yml文件中的配置项,如果你没有配置的话,程序就会采用一个默认值。换句话说,只要程序能采用默认值的配置,就不需要我们再手动配置了,而这个默认值就是约定!**就比如:
- /src/main/java目录用来存放java源文件;
- src/main/resources目录用来存放资源文件,如application.yml文件,mybatis的*mapper.xml文件;
- /src/test/java目录用来存放java测试文件;
- /src/test/resources目录用来存放测试资源文件;
- /target目录为项目的输出位置。
你可能会问,为啥非得在A目录中存放A文件,而不是存放B文件?我非得在/src/main/java中存放测试类不行吗?
你非要这么干,不是说不能实现这个功能,而是这样就打破了大家约定俗成的一种规则,也就是我们上面说的”约定“!就好比在国内,大家走路都走右边,你非得特立独行走左边,行不行呢?当然也不是说不行对吧,你走马路左边也能从北京走到上海,但是你在别人眼里就是个另类,出了事就是你的责任,因为你没有遵守大家都在遵循的一种”约定“!
对于我们人来说,能够满足大多数人的习惯的约定就是一种好的约定,而在程序中,能够简化代码的实现,使代码高可用的约定就是一种好的约定,所以一个好的约定可以减少很多配置。
SpringBoot中"约定大于配置"的思想,其实就是SpringBoot为我们的开发提供了一套已经配置好的默认值。这样就不需要再像以前那样去手动地编写xml配置文件了,只有默认配置项不能满足我们的需求时,才需要去修改配置,也就是说采用默认的"约定"就足够了,这就是所说的"约定"大于(优先于)我们自己的配置。
二. 环境配置
介绍了这么多SpringBoot的理论知识,接下来我们还是动起手来实操一把,毕竟SpringBoot主要还是实战为主,理论并没有那么多。
在进行开发之前,我们先看看SpringBoot开发之前对我们的开发环境有哪些要求吧。
1. 基本说明
本系列教程采用Spring Boot 2.x.x.RELEASE版本;
采用Java 8版本;
要求使用Spring Framework5.0.4.RELEASE或更高版本;
打包工具是Maven 3.2+ 或 Gradle 4+。
另外Spring Boot本身也内嵌了一些Servlet容器,如下图所示:
以上这些是基本说明,大家注意即可。
2. 安装配置JDK 8.0+
我们可以先查看一下自己的JDK版本,是不是JDK 8以上版本,太低的版本不行哦。
#检查java环境
$ java -version
#检查maven环境
$ mvn -v
我这里采用的是Maven作为打包工具,Maven3.x版本都可以的,可以查看一下自己的版本是否合适。
4. 选装配置Gradle4.0+
当然我们做web开发的时候,虽然一般都是采用Maven环境,但是也可以使用Gradle来进行依赖包的下载管理。如果你的环境是Gradle,那么也可以尝试一下,注意本教程采用Maven环境!
Spring Boot提供了一个有用的Gradle插件,可以用来简化依赖声明和创建可执行的jar,我们可以参考如下Gradle依赖插件配置:
plugins { id 'org.springframework.boot' version '2.0.0.RELEASE' id 'java' } jar { baseName = 'firstProject' version = '0.0.1-SNAPSHOT' } repositories { jcenter() } dependencies { compile("org.springframework.boot:spring-boot-starter-web") testCompile("org.springframework.boot:spring-boot-starter-test") }
三. SpringBoot项目创建方式
以上就是我们开发SpringBoot项目之前的基本要求说明,接下来 壹哥 就开始带大家创建第一个SpringBoot项目啦,期待ing…
1. SpringBoot项目创建方式
在开始创建第一个项目之前,壹哥 先介绍一下SpringBoot项目的创建方式,我们在Intellij ideal中创建SpringBoot项目的方式可以有如下3种:
以上这3种创建SpringBoot项目的方式,其实哪一种都可以的,当然以后大家选一个自己习惯的方式即可,接下来壹哥先采用第一种方式给大家创建一个SpringBoot项目。
因为本系列教程主要以实战为主,受限于文字格式,所以我会把项目开发过程以图片的形式,一步一步的给大家进行展示,只要你认真的跟着我的教程去做,壹哥 保证你可以学会并精通SpringBoot的用法!接下来就是正式的项目开发步骤咯,仔细看起来!
这里我先以Spring Initializr方式创建我们的第一个SpringBoot项目,以下就是具体创建步骤了。
2. 新建项目
首先我们先按下图所示,创建一个新项目,注意不是module哦!
3. 选择Spring Initializr
然后就会进入到如下界面,我们选择Spring Initializr即可。
4. 设置项目的包名及坐标GAV信息
接着进入到下面的界面,进行GAV坐标设置,至于什么是GAV坐标,请复习之前壹哥给大家讲过的Maven内容。如果确实不会,可以去腾讯课堂,搜索”一一哥“,在那里我有专门的Maven详细教程,特别细哦!
5. 设置启动器及SpringBoot版本
接着我们选择一个SpringBoot版本,这里我采用的是SprintBoot2.2.5版本,大家自由选择即可,但是不建议采用太高版本,尽量与我一致。
大家可以直接把下面的依赖配置粘贴到pom.xml文件中。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
**注意:**该方式默认是从spring.io官网上下载源码模板,然后自动导入的ideal中,所以对网速要求较高,有可能下载不成功!
6. 设置项目模块名称及存储位置
网安所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
最后就是大家最关心的网络安全面试题板块
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
og.csdnimg.cn/15c1192cad414044b4dd41f3df44433d.png)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
[外链图片转存中…(img-eMbbajn1-1713550322088)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。