台湾生活网_台湾人的网上生活家园 -

幸运pk10心得 _借助Maven入手Spring Boot第一个程序

  • 时间:
  • 浏览:9

    目前网上有不少Spring Boot的入门文章,都很有帮助,自己最近在深入学习Spring Cloud,在搭建第一俩个多Hello World线程运行时,感觉对于新手而言,介绍文章缘何删改前会为过,由于分析其中坑不少,不多不多 这里就把第一次实践的步骤贴出来,以求和我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 同时进步。 

1 Maven是哪几种?能带来哪几种帮助?

    我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 在用Eclipse开发项目时,前会引入支持特定功能的jar包,比如从下图里,我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 能看得人许多 项目都要引入支持mysql的jar包。

 

    从上图里我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 能看得人,支持mysql的jar包是插进本地路径里,另一俩个多由于分析在本地运行自然是没问題图片了。但由于分析我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 要把许多 项目发布到服务器上,就会有问題图片了,由于分析在许多 项目的.classpath文件,由于分析指定mysql的jar包在本地d盘下的某个路径,如下图所示。 

    一旦发布到服务器上,项目依然会根据.classpath的配置,从d盘下许多 路径去找,事实上服务器上是不由于分析有另一俩个多的路径和jar包的。

    我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 也还能够通过在.classpath里指定相对路径来出理 许多 问題图片,在下面的代码里,我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 还能够指定本项目将引入“本项目路径/WebRoot/lib“目录里的jar包。

            <classpathentry kind="lib" path="WebRoot/lib/jar包名.jar"/>

    另一俩个多做,发布到服务器时,由于分析会把整个项目路径里的文件都上传,不多不多 不让出错。但另一俩个多依然会给我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 带来不便。比如许多 服务器上我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 部署了3个项目,它们前会用到许多 mysql支持包,另一俩个多我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 就不得不把许多 jar包上传5次,再扩展一下,由于分析3个项目里会用到20个相同的jar包,这么我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 还真就不得不做多次基因重组。由于分析我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 要升级其中的一俩个多jar包,这么还真就得做不多不多 重复的基因重组粘贴动作。

    期望中的工作模式应该是,应该有个“仓库“同一放置所有的jar包,在开发项目时,还能够通过配置文件引入必要的包,而前会把包基因重组到本项目里。这不多不多 我Maven的做法。

    用通俗得话来讲,Maven是套Eclipse的插件,它的核心价值是能理顺项目间的依赖关系,具体来讲,能通过其中的pom.xml配置文件来统一管理本项目所要用到的jar包,在项目里引入Maven插件后,开发者就暂且手动上加jar包了,另一俩个多能够出理 因此来带来的一系列问題图片。

2 通过Maven开发Spring Boot的HelloWorld线程运行

    第一步,创建Maven项目。本书使用MyEclipse作为开发环境,在其中由于分析引入了Maven插件,不多不多 我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 还能够通过“File”->”New”菜单,如下图所示,直接创建Maven项目。

    在上图里,点击“Next”按钮后,会见到如下图所示的界面,在其中我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 还能够设置Group Id等属性。

    

    其中,Group Id代表公司名,这里设置成“com.springBoot”,而Artifact Id则是项目名,Version和Packag采用默认值。完成设置后,能看得人新建的项目MyFirstSpringBoot

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

1   <groupId>com.springboot</groupId>
2      <artifactId>MyFirstSpringBoot</artifactId>
3      <version>0.0.1-SNAPSHOT</version>
4      <packaging>jar</packaging>
5      <name>MyFirstSpringBoot</name>
6      <url>http://maven.apache.org</url>
7      <dependencies>
8       <dependency>
9                <groupId>org.springframework.boot</groupId>
10                <artifactId>spring-boot-starter-web</artifactId>
11                <version>1.5.4.RELEASE</version>
12        </dependency>
13        <dependency>
14          <groupId>junit</groupId>
15          <artifactId>junit</artifactId>
16          <version>3.8.1</version>
17          <scope>test</scope>
18        </dependency>
19      </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    package com.springboot.MyFirstSpringBoot;
2    import org.springframework.boot.SpringApplication;
3    import org.springframework.boot.autoconfigure.SpringBootApplication;
4    import org.springframework.web.bind.annotation.RequestMapping;
5    import org.springframework.web.bind.annotation.RestController;
6    
7    @RestController
8    @SpringBootApplication
9    public class App {
10        @RequestMapping("/HelloWorld")
11        public String sayHello() {
12            return "Hello World!";
13        }
14        public static void main(String[] args) {
15            SpringApplication.run(App.class, args);
16        }
17    }    

    由于分析是第一次使用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:5050/HelloWorld。由于分析/HelloWorld请求能被第11到13行的sayHello方法的@RequestMapping对应上,不多不多 会通过sayHello方法输出Hello World!的内容,如下图所示。

    

    从许多 线程运行里我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 能体会到开发Spring Boot和传统Spring线程运行的不同。

    第一,在日后的Spring MVC框架里,我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 不得什么都这么web.xml定义采用Spring的监听器,因此为了采用@Controller控制器类,我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 还得上加一大堆配置,但在Spring Boot里,我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 只都要上加一俩个多@SpringBootApplication注解。

    第二,我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 往往都要把传统的Spring MVC项目发布到诸如Tomcat的Web服务器上,启动Web服务器后我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 能够在浏览器里输入请求查看运行的效果,这里我们歌词 歌词 歌词 我们歌词 歌词 歌词 我们歌词 歌词 歌词 只需启动App.java许多 类即可达到之类的效果,就还能够省去部署到Web服务器上的步骤。

3 最后是寻求帮助

    自己在写完java web轻量级开发面试教程后,再想写一本Spring Cloud方面的书,请各位大神不知道该写哪几种方面的内容,由于分析是提些建议,谢谢了。