扯点别的
相对来说从前端向后端学习的难度大于后端向前端学习的难度,毕竟后端多少会知道基本的前端知识,不然只写个接口返回个数据而不知道最后数据的最终呈现,对于一个程序员来说似乎不是一个完整的工作,而对于前端人员来说,没有数据我可以自己造假数据嘛,实在不行我node搭一个嘛。
由于造假数据很快就能满足前端的学习过程,所以导致前端人员对后端知识的掌握相对是匮乏的,其实对于已经工作的前端人员来说,学习后端最难的不是java知识本身,而是环境以及每项技术的前置知识,毕竟基础的结构型语句大家都有,方法很多也是相通的,语法上的障碍不大,那么剩下的就是java特有的东西和框架方面上的障碍了。
很早就想学java,但是每次我都被配置环境给气死,尤其是eclipse,长的丑就算了,GitHub拉的代码在idea上正常运行,在eclipse上maven死活安装不上,但是有什么办法呢eclipse免费啊,idea收费啊,eclipse不会是不行的,就像你可以有千万条理由去diss五菱miniev,但是人家一个理由就够了:我三万块!香不香就很容易体现了。
经过多次摸索,学习后端其实需要有相关前置知识的,应该是这样的:maven-->spring-->spring mvc-->spring boot--->数据库相关
。但是如果这么学的话,我不知道对于有工作的前端人来说是否有耐心学下去,反正我是没有的,而且现在的主流是springboot,要学spring和spring mvc这些需要不少时间,没人指导简直太难了,而网上的视频教程,就算每天抽两个小时学习,不跟着敲代码也要几个月,要是每天还有福报,得学到猴年马月,所以我的学习路线是maven--->springboot--->spring mvc--->spring
。目前只到springboot,至于数据库相关,嗯…我是.net出身,虽然忘得差不多了O(∩_∩)O哈哈~。
目标就是先有能力建一个能跑起来的springboot项目,知道需要的环境,能看懂别人的项目结构,这样才能根据别人已有的项目逐渐学习,从顶向下逐步消化知识。
关于maven
学习springboot最好是要先学一下maven的,当然也可以不用,但是学了容易理解,在学习maven的时候需要下载和配置环境变量,这个基本没什么问题,网上教程也很多,这里不记录了。
maven是一个管理工具,是用来管理jar包的,maven构建的项目有固定的目录结构以及文件,其中最重要的是pom.xml
。它类似前端中的package.json
,它里面记录了项目要用的jar包以及版本信息,还有一些其他的,但那些并不是必须的。
和前端一样,当你导入一个工程之后,是需要进行下载相关的jar包的,一般编辑器会提示或者自动就帮你下载了,当然了,下载的都是maven里面定义的jar包,相关依赖自动会跟着下,只要记住maven中pom.xml和前端的package.json差不多
就行了。说到这里其实觉得要是springboot框架也能像前端框架那样直接通过命令行就能创建一个简单的项目的就好了,学习成本更低了。maven是xml文件,里面的特定标签组合成为坐标,标签名基本见名知意。
maven项目固有的目录结构
坐标形式:这三个标签称之为坐标
<!--所属组织/项目-->
<groupId>com.zh</groupId>
<!--jar包-->
<artifactId>first-demo</artifactId>
<!--版本-->
<version>0.0.1-SNAPSHOT</version>
一个简单的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--
springboot必须有parent节点,并且内容是固定如下,
除了版本,relativePath指的是parent 的仓库地址,
eclipse中这里容易找不到,多半是eclipse版本的问题
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.11.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.zh</groupId>
<artifactId>first-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--打包方式-->
<packaging>war</packaging>
<name>first-demo</name>
<!--项目描述-->
<description>springboot学习</description>
<!--项目其他属性信息-->
<properties>
<java.version>1.8</java.version>
</properties>
<!--依赖的jar包-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<!--打包范围-->
<scope>test</scope>
<!--排除出打包-->
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
新建springboot项目
初学者新建springboot项目可以参照springboot官网上直接进行,当时就是没有好好看官网的东西,不然哪能入门那么慢o(╥﹏╥)o,这里还是记录一下。
https://spring.io/quickstart
在https://start.spring.io/
进行基础的配置,然后下载。
下载与配置仓库
将下载的文件解压后导入编辑器,我这里是idea,导入eclipse我的安装包一直下载不成功,可能是eclipse版本太低的原因,不清楚
导入之后编辑器会提示安装jar包,没有就点击手动下载,位置如下
注意,如果idea没有进行过任何其他配置,下载可能是失败的,这时候设置一下maven仓库的地址就好了,默认是仓库地址是c盘下的.m2文件里的。在本地设置好maven环境之后
,设置项目的maven仓库地址,要注意的一点是setting文件中我设置了镜像地址是阿里的
。配置这个之后再重新下载一次应该就成功了,这个时候项目其实就可以跑起来了,但如果此时访问http://localhost:8080/看到的页面是一个报错页面提示Whitelabel Error Page
,这个是正常的,毕竟还没有进行任何逻辑编码。
配置仓库:
编写逻辑
到这里其实是需要知道一点spring mvc的知识了,在项目文件夹下新建一个管理controller的文件夹,如下
编写以上简单逻辑后就可以启动然后访问测试一下了,测试结果
到这里就算是简单认识springboot了,这个是一个是很简单的demo,没有数据库请求,没有复杂操作,但是作为入门认识springboot应该够了,剩下的就是学习spring mvc、数据库配置与请求、自定义sql语句、常用注解的学习与使用等知识,学完这几个应该可以开始参与后端代码简单编写了,至于什么spring cloud,Redis这些,嗯~~先学会走路再说吧,一口吃不成胖子。