服务器之家

服务器之家 > 正文

利用Maven入手Spring Boot第一个程序详解

时间:2021-04-06 13:14     来源/作者:hsm_computer

前言

学习一个新技术,先别管他的原理啊,流程啊,怎么组织代码啊什么的。直接从官网或者博客抄一个小demo,自己亲自跑一遍,然后再去看那一堆让人头皮发麻的讲解,就能相对容易的看懂了。

目前网上有不少spring boot的入门文章,都很有帮助,本人最近在深入学习spring cloud,在搭建第一个hello world程序时,感觉对于新手而言,介绍文章怎么详细都不为过,因为其中坑不少,所以这里就把第一次实践的步骤贴出来,以求和大家一起进步。

1、maven是什么?能带来什么帮助?

    我们在用eclipse开发项目时,一定会引入支持特定功能的jar包,比如从下图里,我们能看到这个项目需要引入支持mysql的jar包。

利用Maven入手Spring Boot第一个程序详解

从上图里我们能看到,支持mysql的jar包是放在本地路径里,这样如果在本地运行自然是没问题了。但如果我们要把这个项目发布到服务器上,就会有问题了,因为在这个项目的.classpath文件,已经指定mysql的jar包在本地d盘下的某个路径,如下图所示。

利用Maven入手Spring Boot第一个程序详解

一旦发布到服务器上,项目依然会根据.classpath的配置,从d盘下这个路径去找,事实上服务器上是不可能有这样的路径和jar包的。

我们也可以通过在.classpath里指定相对路径来解决这个问题,在下面的代码里,我们可以指定本项目将引入“本项目路径/webroot/lib“目录里的jar包。

?
1
<classpathentry kind="lib" path="webroot/lib/jar包名.jar"/>

这样做,发布到服务器时,由于会把整个项目路径里的文件都上传,所以不会出错。但这样依然会给我们带来不便。比如这个服务器上我们部署了5个项目,它们都会用到这个mysql支持包,这样我们就不得不把这个jar包上传5次,再扩展一下,如果5个项目里会用到20个相同的jar包,那么我们还真就不得不做多次复制。如果我们要升级其中的一个jar包,那么还真就得做很多重复的复制粘贴动作。

期望中的工作模式应该是,应该有个“仓库“同一放置所有的jar包,在开发项目时,可以通过配置文件引入必要的包,而不是把包复制到本项目里。这就是maven的做法。

用通俗的话来讲,maven是套eclipse的插件,它的核心价值是能理顺项目间的依赖关系,具体来讲,能通过其中的pom.xml配置文件来统一管理本项目所要用到的jar包,在项目里引入maven插件后,开发者就不必手动添加jar包了,这样也能避免因此来带来的一系列问题。

2、通过maven开发spring boot的helloworld程序

第一步,创建maven项目。本书使用myeclipse作为开发环境,在其中已经引入了maven插件,所以我们可以通过“file”->”new”菜单,如下图所示,直接创建maven项目。

利用Maven入手Spring Boot第一个程序详解

在上图里,点击“next”按钮后,会见到如下图所示的界面,在其中我们可以设置group id等属性。

利用Maven入手Spring Boot第一个程序详解   

其中,group id代表公司名,这里设置成“com.springboot”,而artifact id则是项目名,version和packag采用默认值。完成设置后,能看到新建的项目myfirstspringboot

第二步,改写pom.xml。当我们创建好maven项目后,能看到pom.xml文件。在maven项目里,一般是通过pom.xml来指定本项目的基本信息以及需要引入的jar包,这里的关键代码如下。  

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<groupid>com.springboot</groupid>
 <artifactid>myfirstspringboot</artifactid>
 <version>0.0.1-snapshot</version>
 <packaging>jar</packaging>
 <name>myfirstspringboot</name>
 <url>http://maven.apache.org</url>
 <dependencies>
 <dependency>
  <groupid>org.springframework.boot</groupid>
  <artifactid>spring-boot-starter-web</artifactid>
  <version>1.5.4.release</version>
 </dependency>
 <dependency>
  <groupid>junit</groupid>
  <artifactid>junit</artifactid>
  <version>3.8.1</version>
  <scope>test</scope>
 </dependency>
 </dependencies>

其中,第1到第4行的代码是自动生成的,用来指定本项目的基本信息,这和我们在之前创建maven项目时所填的信息是一致的。

从第7到第19行的dependencies属性里,我们可以指定本项目所用到的jar包,这里在第8和第13行分别通过两个dependency来指定该引入两类jar包。其中从第8到12行,指定了需要引入用以开发spring boot项目的名为spring-boot-starter-web的jar的集合,而在第13到18行,指定了需要引入用以单元测试的junit包。

从中上述代码里,我们能见到通过maven管理项目依赖文件的一般方式,比如在下面的代码片段里,是通过第2到第4行的代码,说明需要引入org.springframework.boot这个公司组织(发布spring boot jar包的组织)发布的名为spring-boot-starter-web的一套支持spring boot的jar包,而且通过第4行指定了引入包的版本号是1.5.4.release。

这样一来,在本项目里,我们就无需在本地在手动地添加jar包,这些包事实上是在远端的仓库里,我们这个项目是通过pom.xml的配置,来指定需要引入这些包。

第三步,改写app.java。

在创建maven项目时,我们指定的package是com.springboot.myfirstspringboot,在其中会有个app.java,我们把这个文件改写成如下的样式。   

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package com.springboot.myfirstspringboot;
 import org.springframework.boot.springapplication;
 import org.springframework.boot.autoconfigure.springbootapplication;
 import org.springframework.web.bind.annotation.requestmapping;
 import org.springframework.web.bind.annotation.restcontroller;
 
 @restcontroller
 @springbootapplication
 public class app {
 @requestmapping("/helloworld")
 public string sayhello() {
  return "hello world!";
 }
 public static void main(string[] args) {
  springapplication.run(app.class, args);
 }
 }

由于是第一次使用maven,我们在这里再强调一次,虽然我们没有在项目里手动地引入jar,但由于在pom.xml里指定了待引入的依赖包,具体而言需要依赖org.springframework.boot组织所提供的spring-boot-starter-web,所以在代码的第2到第5行里,我们可以通过import语句,使用spring-boot-starter-web(也就是spring boot)的类库。

在第8行里,我们引入了@springbootapplication注解,以此声明该类是个spring boot的应用。在第10到第13行里,我们通过@requestmapping,指定了用于处理/helloworld请求的sayhello方法,在第14行的main函数里,我们通过第15行的代码启动了web服务。

至此我们完成了代码编写工作。启动myfirstspringboot项目里的app.java,在浏览器里输入http://localhost:8080/helloworld。由于/helloworld请求能被第11到13行的sayhello方法的@requestmapping对应上,所以会通过sayhello方法输出hello world!的内容,如下图所示。

利用Maven入手Spring Boot第一个程序详解   

从这个程序里我们能体会到开发spring boot和传统spring程序的不同。

第一,在之前的spring mvc框架里,我们不得不在web.xml定义采用spring的监听器,而且为了采用@controller控制器类,我们还得加上一大堆配置,但在spring boot里,我们只需要添加一个@springbootapplication注解。

第二,我们往往需要把传统的spring mvc项目发布到诸如tomcat的web服务器上,启动web服务器后我们才能在浏览器里输入请求查看运行的效果,这里我们只需启动app.java这个类即可达到类似的效果,就可以省去部署到web服务器上的步骤。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对服务器之家的支持。

原文链接:http://www.cnblogs.com/JavaArchitect/p/8468934.html

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部