这两天使用IDEA从零构建一个spring项目,之所以说从零,是因为,我这个小白呢,之前IDEA没有碰过,spring也只是知道个名字。
因为没有文档,遇到了好些坑,把这些记录一下吧。

  1. 构建的第一步,观察到了项目有个pom.xml,估计他是使用的maven进行构建的,然后,我就利用maven import了,这里注意的是:
    把maven的源修改一下,否则从中央库下载,速度慢到哭。
  2. 利用maven下载好大部分JAR包,但是仍然有一些没有下载,去maven repository去找也没有(说明是私有库被),然后我就问了一下后面的韶杰大神,他说,的确是私有库,
    然后让达晟把包给我,我以为直接引,用jar导入就行(又是坑。。),韶杰又提醒我,使用pom.xml导入私有库(去百度),然后导入成功了
  3. 接着就先弄tomcat开始跑被,我也不知道是不是坑,就下了个8,(尽管这个没遇到坑),跑出来,出现了一个卡一天的错误,
    那就是classChangeError:impl..什么,这个错误,经过百度,Google,我认定就是传递依赖,JAR包冲突的问题。
    然后我下了一个denpendency helper插件,一个一个排查(一开始有好多冲突哦),mvn dependency:tree > tree.txt 去查
    最后各个工具真的都没有报错了,但是仍然还是 classChangeError:impl..什么,我就又问了一下韶杰,韶杰大神说是一个quarz的包1.6版本不需要。
    我立刻把这个依赖,去除,然后就能跑了。 真是。。
  4. 项目跑起来了,就开始连数据库被,我一开始以为这得连远程库吧(其实我蒙蔽。。当时也没个思路),然后名扬告诉我在本地建个库,跑一下
    达晟给了我一堆数据。
  5. 然后,我就又开始无脑了,我下了个8.0的mysql(后来才知道,看到dao层用的是5.0的驱动。。),这就又是个坑被。。
    其实这个不应该是是坑的,如果一开始我就看一下pom.xml,就好了。
  6. 我也不想重新下,因为大家都知道,mysql不同版本下下来,在windows上会有各种各样奇葩问题,事实证明,我这个判断还是正确的。
    然后子平大神来了。(哈哈哈,他来了他来了),子平百度了一番,主要修改两个地方:

一个是pom.xml中的jdbc的版本从5->8

一个是dao层的这个 com.jdbc.driver->com.cj.jdbc.driver
          这是第一遍修改。。没有成功。
          然后,我们又修改    dao层的下面  com.jdbc.driver->com.cj.jdbc.driver  这句加上了 时区同步的语句(网上人说的)
          又没成功。。后来又在 这句前加上了 jdbc。。成功。。我服。 
          还有就是全局寻找使用vs code是真的好用,vs code 界面也挺好的,真不错。(子平告诉于我)
          这其中,还有一个地方到现在也没明白的就是,项目有两个,dpdb.properties还有一个是db什么properties,到底这个连的哪个啊。。(反正我是都设了一遍)
  1. 数据库连上了之后,IDEA后台就没有报错信息了, 但是index.html,一堆图片没有显示出来,
    看一下/image/是请求不到资源的。
    结合达晟之前告诉我修改的两个地方,
    把存在于本地计算机的实际路径映射到项目的虚拟路径上去。修改的地方,分别是:FILEPATHIMG(直接就是物理路径)
    还有
    就是 image/的maping,这里注意,需要file:///进行转义,这是子平大神操作的,要是我。。估计又是个卡人的坑。。。
  2. 把图片链接上后,看一下image/**,果然是能够访问到了,但是主页还是有404,
    是这个资源没有找到 /web/navigation/,然后我们用vs code全局搜了一下,发现这个@controller是有的,我当时就很疑惑了,这应该没问题啊。
    子平大神立刻断定 :
    出现这个问题的原因是: 我访问的路径是localhost:8080/项目名/,但是应该访问的路径名是localhost:8080/
    我当时还是有些许的不认同。。然而现实啪啪打脸.
    子平断定了问题后,修改tomcat中的deployment,将 /项目名 改为 / (这一步就是修改tomcat访问路径的)
    然后就能访问了。

至此

项目跑起来。。难死我这个小白了。

总结一下呢:

  1. 就是遇到问题,首先别慌,冷静的思考一下,不要着急动手,分析一下问题 ,不会的原理一定要去看一看在开始。这是最为重要的
  2. 不会就问。。(比如quarz这个坑)
  3. 应该根据项目下载对应版本