老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备

前言

截止到本文编辑和发布的时间(即2020年07月)SpringBoot系列的版本号已经到达2.3.1了。基于SpringBoot本身的理念和特点,导致旗下几乎所有关联的组件的版本号几乎都保持一致地到达了2.3.1。

从SpringBoot首次发布之后,网络上便到处可见各类有关其的教程和文章,甚至还有不少专题,其标题无不夺人眼球。仔细看这些洋洋洒洒的著作,无不写得细致入微——从原理解说到手绘配图。

站在SpringBoot的巨人肩膀之上,Web应用开发进入了一个新的时代。随之而来的是很多新事物的兴起。这其中就引出了本文的其中一个撰写目的:老树开新花。

观察大部分Spring有关的学习类文章,大多是站在最新的开发工具IDE——Idea intellij。不可否认这是一个更为先进、高雅,同时给人以现代感的开发工具。年轻一代程序员们无不对其趋之若鹜。

但是作为一个已经一半被行业淘汰了的老程序员,自己仍然在坚守着那个更为“古老”的开发环境:MyEclipse。并不是因为什么其他的原因,仅仅只是因为工作的原因,接触了不少企业级的客户。在这些客户当中,不乏有众多仍然运行于早期SpringMVC架构下的项目。笼罩在“互联网”光环下的全新的Web开发体系对这些老项目其实表现得并不那么友好,这也导致了很多参与在这些项目中的开发人员面对新技术时所产生的矛盾的心情——一方面大家都在追捧的新鲜玩意儿,老程序员们也希望能够接触一点,但另一方面,这就意味着自己可能需要新旧两头兼顾,并且对旧有系统的更新换代也显得代价过于高昂——我们无法对老板或是雇主说:需要把旧有的,已经正常运行了十数年的系统完全推翻重做。

事实上,随便一个企业级的系统,动辄上百万的开发成本,半年甚至一年以上的开发周期,还要考虑与旧有系统的双线运行、老数据的备份与导入、大量的报表重制、还有业务部门工作人员的使用习惯等,当然了,还包括许多非技术的原因在内,例如人事之间的相互制衡和权力纷争,这些是作为程序员的技术人员大都很难想象的。

因此,借着一些企业级项目改造的机会,我简单整理了这一系列的文章。作为一个“实用主义”者的坚定拥趸,我仍然坚持“不为了用而用,一切点到为止,够用就行了”的原则。

如果你是一个“上古”的老程序员,正在寻找类似的解决方案,那么请留步关注,我们一起坐下来,聊一聊奔着四十岁去的程序员人生,聊一聊边写代码边带孩子的人生经验,可能地话再喝一杯美式。

如果你是一个激情洋溢的新生代程序员,早已熟悉了互联网环境下的开发过程,那么请移步离开。这个古旧的“盒子”表面布满了灰尘和霉点,并不值得你去打开。

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第1张图片

开发环境

操作系统:Ubuntu 18.04

Java版本:JDK 1.8

开发工具:MyEclipse

中间件:Tomcat 9.x

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第2张图片

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第3张图片

开始

我想尽可能地使用更为轻松的语言,那么,我们开始吧。

我曾试着在网上搜索“Eclipse 如何搭建SpringBoot”,或者类似的关键字。大部分的文章会告诉我们,我们只需创建一个“maven项目”,并且引入相关的pom依赖,就能够完成SpringBoot项目的搭建。

我并不觉得这是一个好的开始。事实上,有相当多古旧的企业级Web系统,其源代码工程并不是构筑在“maven项目”上的。其中更多的项目可能是构建在“Java EE Web Project”基础之上的,甚至可能更为古老,是一个典型的Servlet/JSP项目:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第4张图片

如此一来,我们就要从这个地方开始了。

假设我们已经拥有一个Java EE Web 项目了,它已经在现有的生产环境中稳定地运行了很久,而我们的手上有它的一份源代码工程:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第5张图片

它甚至还保留有一份令人怀念的web.xml文件:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第6张图片

事实上,对于向我这样奔着四十岁去的老程序员来说,web.xml文件更多的时候意味着“安心”。因为我知道在那里面我仍然保佑对项目施加更多扩展的可能性。但现在它并不会妨碍我们。

Maven和POM

好了,这是一个非常干净而纯粹的Servlet Web项目。干净到它什么都没有。年轻的程序员们可能已经没有多少人会编写JSP甚至是Servlet了;他们也不会喜欢手动地去网络上收集自己的项目所要用到的资源包,并手动地将他们复制到WEB-INF/lib目录下。这实在是太过于古老和低效了。

好吧,可能有相当一部分“老程序员”们早已习惯了使用Maven来作为资源管理工具。但至少在今天,让我们仍然从头做起。毕竟这个被命名为“TheElder”的项目——如你所见——过于纯粹了。

我们首先要为它添加Maven依赖环境,让它能够先转变为一个可以使用Maven的项目。但首先,我们需要确认一下自己所用到的Maven环境。

尽管MyEclipse已经自带有相应的Maven工具,但是我仍然怀疑这个原始的工具可能在哪里存在着一些问题。所以我们打开Maven官网,重新下载最新的Maven工具:

Maven官方网站:http://maven.apache.org/index.html

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第7张图片

Ummm....阿帕奇的网站一如既往地这么....简约.....

在Maven官方网站上,有相当显眼的“Download”链接,通过它我们能够进入到下载页面:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第8张图片

选择合适的镜像地址,然后我们就能从这个页面上下载Maven工具了。对于Ubuntu/Linux来说,tar.gz和zip文件其实并没有太大的区别:

将下载到的压缩包解压,放置在一个合适的目录下,保证自己能记得住这个目录的路径即可:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第9张图片

我们还需要再额外准备一个空的目录,作为各种.jar文件的资源库——它将成为我们本地环境中的Maven资源仓库:

在这个目录下,我们需要新建一个xml文件,把它命名为“settings.xml”,然后打开它,在其中添加以下的内容:



    /home/freezingxu/jobs/MavenRepository

    
        
	
            repo1
            central
            repo1.maven.org/maven2
            https://repo1.maven.org/maven2/
        

        
        
            repo2
            central
            repo2.maven.org/maven2
            https://repo2.maven.org/maven2/
        
	    
        
        
            alimaven
            aliyun maven
            
            http://maven.aliyun.com/nexus/content/groups/public/
            central
        
    

    
	
            jdk1.8
            
                true
                1.8
            
            
                UTF-8
                1.8
                1.8
                1.8
            
        
	
	    Snapshots
	    
	      
	        Maven Snapshots
	        http://snapshots.maven.codehaus.org/maven2/
	        
	            true
	        
	        
	            false
	        
	    
            
	    
	        
	            Maven Snapshots
	            http://snapshots.maven.codehaus.org/maven2/
	            
	                true
	            
	            
	                false
	            
	        
	    
        
    
    
        Snapshots
    

在上述的文件“settings.xml”中,有几处需要特别注意的地方:

标签:该标签里的内容就是当前settings.xml文件所在的位置,即本地Maven仓库所在的目录位置。

标签:该标签下有多组子标签,每一个都指向一个备用的Maven中央仓库的网络地址。

好了,接下来回到MyEclipse中,打开“Window”菜单项,选择“Preferences”选项,在打开属性面板中,选择左侧的“Maven”选项下的“Installations”子选项,在右侧添加一个新的Maven目录,就是之前我们下载保存的Maven所在的目录:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第10张图片

然后,继续点击左侧“Maven”菜单项下的“User Settings”子项,在打开的面板中,选择先前编辑过的“settings.xml”文件:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第11张图片

至此,开发环境中的Maven环境已经准备完毕了。接下来我们就能够为传统的Web Project添加Maven支持了。在项目工程的名称上,点击鼠标右键,选择“Maven”选项,向右展开子菜单,选择“Enable Denpendency Management”:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第12张图片

在弹出的窗口中,我们唯一需要注意的是,可以将“Packaging”一项选择为“war”。尽管Spring Boot支持将整个项目工程编译完成后,连同一个它自带的Tomcat一起打包成为一个jar文件,但这对我们今天所面对的老旧系统来说太不友善了。所以我们仍然选择传统的“war”打包方式——但这一点在之后其实可以任意修改:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第13张图片

完成这一步以后,在项目工程的根目录下,就多了一个“pom.xml”文件了。它将帮助我们以Maven的方式来构筑项目中所要用到的所有.jar资源文件:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第14张图片

打开这个文件,目前里面什么都还没有:


	4.0.0
  	TheElder
  	TheElder
  	0.0.1-SNAPSHOT
  	war

值得注意的是,在标签中,就是在上一步骤时所选择的打包方式“war”,此处也可以改成"jar"。

好了,现在,我们可以试着通过Maven来添加依赖包了。有两种方式:

方式一:在项目名称或者pom.xml文件上,右键点击鼠标,选择“Add Dependency”:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第15张图片

然后在弹出的对话框中,搜索自己想要添加的jar包的名称即可:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第16张图片

方式二:如果你刚刚建立自己的本地Maven资源库,这个资源库中还什么都没有,那么你可以直接编辑pom.xml文件,在其中添加所需的jar包的依赖描述。例如,我们可以先访问Maven中央仓库:

Maven中央仓库:https://mvnrepository.com

在中央仓库的搜索栏中,搜索自己想要找的资源:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第17张图片

在搜索结果中,选择自己所需要的资源,进入到该资源的详情页面,在详情页面上,选择自己所需的版本号:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第18张图片

在版本号的明细页面中,复制页面上所出现的pom资源描述:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第19张图片

把这段描述,粘帖在自己项目工程的pom.xml文件中。需要注意的是,标签必须位于之下:


	4.0.0
  	TheElder
  	TheElder
  	0.0.1-SNAPSHOT
  	war
  	
  	
  		
		
			org.springframework.boot
			spring-boot-starter
			2.3.1.RELEASE
		
  	
  	

如果添加成功,我们会在自己的源代码工程中看到多了一个Maven资源库,并且展开之后能够看到自己所添加的所有的jar资源:

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第20张图片

不要惊讶,尽管我们只在pom.xml文件中添加了一个依赖“org.springframework.boot”,但却在Maven Dependencies中看到了如此多的jar包。这是因为依赖“org.springframework.boot”又自动将它的依赖也一并添加了进来。

如果你真的是第一次使用Maven的话,我建议您可以打开自己的Maven本地资源库目录,你将看到你在pom.xml文件中所引用的依赖全部被下载了下来。

老树开新花:在MyEclipse环境中配置和使用SpringBoot——前言和准备_第21张图片

好了,第一步就先到这儿~~我需要去喝一杯美式...

你可能感兴趣的:(Java/Web)