1.2 搭建开发环境

管理工具:Apache Maven

https://maven.apache.org/

· 作用:

        可以帮助我们构建项目、管理项目中的jar包 

 · Maven仓库:存放构件的位置 

        - 本地仓库:默认是 ~/.m2/repository 

        - 远程仓库:中央仓库(Maven官网)

                            镜像仓库(第三方网站对官网仓库的部分拷贝)

                            私服仓库(有些企业自己搭建的仓库)

本项目会把远程仓库改为阿里云的镜像仓库maven.aliyun.com

本地仓库和远程仓库有什么联系呢?

当maven想下载构件的时候,会先去查找本地是否有所需配件,若没有则再去远程仓库中下载

· 配置:

1.下载并解压完成后,在目录D:\work\apache-maven-3.6.3\conf下找到文件settings.xml

2.右键Edit with Notepad++,修改mirror部分如下


3.配置环境变量:在path中添加

为了在cmd中能直接调用mvn.cmd,将D:\work\apache-maven-3.6.3\bin配置到系统环境变量path中

4.maven命令:

手册地址https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

    1>查看版本:mvn -version

    2>新建项目:mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false

实际新建项目的时候命令修改如下:

新建完成

则在workspace下会有项目mavendemo1

D:\work\workspace\mavendemo1\src该目录下main放的是正式的代码,test放的是测试的代码,当将来部署项目、上线项目是,测试代码就会被抛弃

C:\Users\47176\.m2\repository本地仓库,该目录下是maven自动从远程仓库下载的资源

    3>编译项目:

                  (1)dos中,首先进到有pom.xml的文件夹下,然后输入命令mvn compile,完成后,在目录D:\work\workspace\mavendemo1下多了一个target文件夹,target-->classes-->com-->nowcoder-->mavendemo1下有app.class文件。

                  (2)重新编译的话,命令mvn clean,target文件夹就没有了,重新mvn compile编译就又有了。

                  (3) mvn clean compile的意思是先清理再编译

                   (4)mvn clean test 清理先前编译的,重新编译测试,实则test中包含了编译。目录target中多了一个test-classes,里面是编译好的测试程序



集成开发工具:Intellij IDEA

目前最流行的Java集成开发工具

下载安装包安装

安装完成后在导入界面的configure先选择settings进行设置


idea可以帮助调用maven命令,前提是告诉IDEA maven在哪,因此需要build tools中的maven设置 

设置完成后创建新项目,点create new project,然后选择jdk和maven模板



创建好新项目后报错,在idea中查看日志help->show log in explore,打开idea.log,找到error的位置


经过百度,网上说是maven3.6.3和idea2018不兼容,因此要卸载重装maven

maven由于安装的时候只是解压,配置环境变量,设置本地仓库,所以卸载的时候也很简单

1、删除解压的maven文件夹;

2、删除设置的环境变量MAVEN_HOME,删除Path里添加的“%MAVEN_HOME%\bin;”;

3、删除本地仓库;C:\Users\47176\.m2

maven重新安装成功

如果要重新安装maven并且创建和原来目录D:\work\workspace中一样的项目名时,最好是把原有项目直接删除同时清空回收站,如果只是删除,没有清空回收站,在用idea创建项目名相同的项目时会报错。

终于在idea中创建项目成功,看窗口i最右边有maven标签,点开标签会有maven操作命令,执行收双击即可


平时编译为了方便,点出窗口上方build,build project来完成编译,或者快捷键ctrl+F9

运行时,可直接右键选择run()...


Spring Initializr 

• 作用:创建 Spring Boot 项目的引导工具 

• 示例:创建“牛客社区”项目

• 使用该工具原因:

虽然maven已经能很方便的管理包,但是当包太多的时候也会有麻烦,如果项目要用到的包太多的话,都要通过maven去官方或镜像搜索下载这些包。具体关于怎样去搜索这些包,到网站https://mvnrepository.com/直接搜索相关包,比如mysql,搜索结果会反馈下载量,就选择下载量最高的选项点开以后,找到代码框复制代码

复制到项目的pom.xml文件中的<dependencies></dependencies>模块中去,如下位置。


保存后,maven就会根据这个配置自动下载这个包,但是包太多了总不能一个一个去配置,而使用Spring Initiallizr工具就能很好地解决这个问题。那么这个工具时如何发挥最用的呢,这个工具会把平时开发所用到的包做整合,然后按照功能/需求进行归类,比如我在做web开发时,我直接在这个工具中搜索web关键字,那么我就可以直接引入一批web开发相关包,而不用再一个一个引入。即做哪一方面的开发,就可以直接引入相关的一类包,但是其底层还是基于maven。


• 配置步骤

1.网址:https://start.spring.io

2.在官网配置如下,基本都是默认选好的,只有group、name那些信息需要自己修改

3.dependencies就表示不同类的jar包集合,需要引入的有aspects(核心功能)、web、thymeleaf(模板引擎来生成页面)、devtools(开发者工具,我们在开发过程中有这个工具就会很方便,比如说当我代码修改后需要重新编译启动服务器时,这个工具会帮助开发者自动重启)

(因为这个网站找不到aspects类包了,所以我到mvnrepository下载了spring aspects包,然后配置到pom.xml文件中去了)


4.选好所有选项后,点generate生成项目压缩包,然后解压至一个路径中

5.在idea中file->open->打开community项目,配置完成


· 补充说明:

因为这个项目是web项目而非普通项目,所以它的结构有些不同,java下有我们自己建的包(com.nowcoder.community),包下面是自带的类,类中的代码就和刚才的demo中类的代码不一样;

resources文件夹下存放的是配置文件以及静态资源,包括要用的网页模板、网页所依赖的图片、样式、js都存放在这里,application.properties是配置文件,之后的学习中再做解释。

运行main方法,在CommunityApplication中右键run,运行结果有很多信息包括spring的图标

其中运行结果:


tomcat以8080端口启动成功了,而且程序没有终止,处于一直在运行的状态,即此方法的底层自动启动了tomcat应用服务器。spring boot以jar包的方式内嵌了tomcat,运行这个main方法启动的就是内嵌的tomcat,因此即使我们没有另外装tomcat也会出现此类运行的情况。当然也可以在External Libraries中找到tomcat相关jar包。如图


既然服务器启动了,那么就可以通过浏览器访问,服务器本身就是服务于浏览器的。打开浏览器访问:输入localhost:8080,跳转到一个whitelabel error page,但是这一结果也表明服务器确实处于启动工作的状态。


以上利用spring initializr创建spring boot项目的环节就完成了。


Spring Boot 入门示例 

当我访问服务器的某一个路径时,能给返回一句话就可以。比如hello spring boot

• Spring Boot 核心作用 - 起步依赖、自动配置、端点监控 

1.起步依赖:pom.xml中dependencies下的包都叫做spring-boot-starter-aop 、spring-boot-starter-web、spring-boot-starter-thymeleaf等,这些包就叫做起步依赖,依赖的不是一个包,而是每一个stater包里又包含了一堆包,可以通过ctrl+点击某个dependencies下的包,看到某个包底层的dependencies的构成。简单来说就是一大堆包的组合就叫做起步依赖。

2.自动配置:

如果不使用spring boot 那么就需要自己去配置很多内容和配置文件,要想启动web项目、使用spring框架则需要做很多配置,但是利用spring boot几乎不需要配置,就可以把服务器启动。

3.端点监控:

当项目上线以后,项目的运行状况是否良好需要用spring boot提供协助。(在之后的讲解中会有相关解释)

• 示例 - 一个简单的处理客户端请求案例

首先在新建个包controller,controller之下新建一个类AlphaController(不是项目示例,只是一个演示demo)


类中需要写springMVC注解,至于这些注解之后还会有详细介绍

代码如图:


在tomcat已经启动的情况下,代码经过修改需要重新编译,直接build->build project,或者点按钮

tomcat未启动的状态下直接运行即可run()

然后打开浏览器,localhost:8080/alpha/hello


成功

浏览器访问服务器,服务器返回了想要的这一句话

所以用spring boot去构建项目,去开发一个前后端交互的功能居然是这样的简单,这也是spring boot项目的优势。

补充:

服务不用的时候要把它关掉。

tomcat启动的时候默认的端口号是8080,下面说如何修改tomcat端口:

找到配置文件application.propeties ,在其中敲入如图代码


重新运行项目

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,657评论 6 505
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,889评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,057评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,509评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,562评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,443评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,251评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,129评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,561评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,779评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,902评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,621评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,220评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,838评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,971评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,025评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,843评论 2 354

推荐阅读更多精彩内容