其实java web这块起步是一个挺繁琐的事情,要想整一个完整的应用,需要的知识点虽然难度不大,但是类别很多。比如配置和理解java环境、maven使用、IDE选择、spring消息路由...这些对于完全野路子想自学的人来说挺麻烦的,我希望可以用尽可能简单的方式讲一讲这个完整的过程。
- 开发工具
我们最重要的两个东西就是java和maven。
下载结束后随便放哪个目录都可以
java我们可以在http://jdk.java.net/java-se-ri/14下载openjdk
下载jdk14是因为我用VSCODE开发,然后现在至少需要jdk11。。
maven下载就直接官网http://maven.apache.org/download.cgi
- java环境
关于配置java环境,网上教程一大把。而我想说的是理解方面的东西。
我们写java程序是面向java虚拟机编程,在操作系统,java就是一个程序,就像一个音乐播放器程序、代码编辑器什么的。只不过他是一个控制台程序,接受命令行参数启动。
在windows下,比如我们在控制台写个运行命令:java -jar xxx.jar
就是运行java.exe,两个命令参数是-jar xxx.jar。
为什么控制台知道java.exe在哪里呢?就是因为我们配置了环境变量path。
当我们的控制台工作目录在java.exe同级目录就可以不配置环境变量。
或者写成:
C:javawebjdk-14.0.2binjava -jar xxx.jar
这种绝对目录也可以不用配置环境变量
配置java环境变量主要是开发环境和工具需要认环境变量这种。
环境变量增加个JAVA_HOME,然后path环境变量加一个%JAVA_HOME%bin
然后打开控制台敲个命令java就知道配置成功没有。
其实什么python、nodejs、go这些都是一个套路,就是配置个程序所在的路径,让你运行命令时候能启动他的解释程序。
- maven环境
其实不配置这玩意也可以,因为开发环境都可以自给自足了,只不过用的是国外下载源比较慢,还有一个就是下载的包存储路径会固定放在C:Users用户名.m2,不能放在我们想管理的位置。
maven这玩意依赖于java。
套路一样,就不解释原理了。配置个M2_HOME和path
整完之后命令行敲个mvn -vesion看看成不成。
然后配置包下载镜像和存储路径。
在maven的conf目录下的settings.xml。
存储位置
下载地址配置:
- 编辑器
我这里用VSCODE,直接官网下载https://code.visualstudio.com/
然后安装插件包Extension Pack
然后我们配置下maven吧,当然类似刚才说的如果不配置maven其实也可以。。
打开设置界面
然后在里面写一下我们用到的用户配置(主要是使用xml里配置的下载地址和存储路径)。
"java.configuration.maven.userSettings": "C:\javaweb\你的具体目录\conf\settings.xml",
- 创建springboot工程
上官网https://start.spring.io/可以在网页上勾选设置,记得添加依赖Spring Web,然后创建工程。
下载到压缩包以后解压就是这个样子:
如果打不开这个网页,可以使用vscode插件Spring Initializer Java Support。然后F1打开命令窗口,选择Spring Initializer创建工程。
我们用vscode打开这个工程,记住一点就行,maven项目的根目录就是那个包含pom.xml的目录,maven工程就是根据这个文件来构建的。
打开工程后vscode弹出提示加载选择确认就行了,然后等待加载设置完成。
加载完成后,就可以看到主入口那里有个Run,点击他就可以启动程序。(或者F5调试,ctrl+F5运行)
运行成功:
- 工程样例
上面启动成功之后是个空架子,神马都没有的,需要自己填充内容。至少得写个RequestMapping。内容就更多了,有机会我再展开写写吧。。。
我这里有个github的精简工程:
https://github.com/JiYangLin/jyl-springboot
麻雀虽小,五脏俱全,Controller、Service、mapper、thymeleaf都有了。
记得改下java版本,当时写的时候用的java8。
启动程序,浏览器输入:http://127.0.0.1:8080/
使用mysql数据库,数据库testdb中表user包含id和name
用户名和密码都是root
对应代码:
所以浏览器输入:http://127.0.0.1:8080/fun
会调用fun()函数,查询id为0的数据,然后返回json串。
好了,这就是个引导篇。我只负责挖坑不负责埋,后面的路还很长,需要学的知识点很多,我只能送一句加油。。。



