好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

5分钟快速上手Spring Boot

概述

与一些动态语言(如ruby、groovy、node.js)相比,java开发显得异常笨重。接触过外包项目的朋友也有所了解,如果要开发一个小型项目,首选的编程语言并不是java,而是php。为什么呢?因为开发起来快!目前很多大型互联网公司的早起编程语言都是类似php这种能够快速开发的语言。
既然问题出现了,那必然有解决问题的方案,springboot做到了。springboot是由pivotal公司所属团队研发,该公司的企业宗旨为:

致力于[改变世界构造软件的方式(we are transforming how the world builds software)],提供云原生应用开发 paas 平台及服务,帮助企业客户采用敏捷软件开发方法论,从而提高软件开发人员工作效率、减少运维成本,实现数字化转型、it 创新,并最终实现业务创新。

springboot让我们可以在几分钟内就搭建出一套项目的基础架构,同时为我们提供了大量集成方案——starters。基于[约定优于配置]的理念,减少大量的配置文件,让项目快速、简单的运行起来。内置web容器(如tomcat、netty等),通过jar -jar命令即可启动一个项目。

项目创建

环境要求

采用springboot最新版本2.1.3来讲解。我们使用maven项目管理工具来管理项目,电脑上要预先安装好maven3.3+(springboot要求)版本。jdk当然也少不了,但需要jdk8及以上版本。

创建项目方式一

通过官网提供的spring initializr来创建项目。访问官方网址: https://start.spring.io/   。显示内容如下:

简单了解一下相应的参数选择:

project:选择项目构建的工具,采用默认的maven; language:选择构建项目的语言,采用默认的java; spring boot:选择使用的springboot的版本信息,采用最新版本2.1.3; project metadata:设置项目的元数据,主要就是设置maven相关的配置;group,对应maven中的groupid,artifact对应maven中的artifactid。

打开more options会看到另外一些默认的配置:

packaging:指定打包的模式,默认采用jar包模式,即使用java -jar启动即可,如果需要部署到单独的tomcat或其他web容器,则可选择war包。 java version:springboot2.13默认支持最低jdk为8。

我们前面提到的starters的选择就是在dependencies中设置,在没有输入任何内容的时候,能够看到该输入栏目有对应的提示信息。当输入web时,会动态匹配与web相关的依赖,点击[?]添加即可。这里选择web的最小化配置。

当完成选择,点击[generate project]即可自动下载创建好的项目代码。解压之后,会看到是一个标准的maven项目,使用idea等ide引入maven项目,自动加载依赖即可,这里不再赘述。

创建项目方式二

第二种创建方式就是直接使用idea进行创建,当然前提是idea中已经安装了spring boot相关的插件——spring boot,如下图所示。

像创建其他项目一样,file,new,project…,即可进入创建项目页面,如下图:

选择spring initializr,展示右边基础配置项。我们会发现,其实此插件进行创建时默认也是调用官方提供的网址进行创建。选择jdk8,点击下一步。

像第一种方式一样,填写相关参数信息,这里就不再重复描述。点击[next],进入选择依赖界面。点击[web],同时勾选中间部分出现的[web]。能够看到下面出现了[servlet web application with spring mvc and tomcat],因此,项目已经具有了springmvc框架和tomcat内置web容器了。

当然,如果项目需要,也可以选择添加更多相关依赖。完成依赖选择之后,点击[next],指定项目的名称和位置,点击[finish],等待项目构建完成即可。根据网络速度,等待时间有所不同,当添加依赖jar包一直卡着不动时,可考虑关闭项目重新打开,手动[reimport]一下maven依赖。

项目目录结构

项目完成创建之后,来看一下目录结构:

项目目录结构简单明了,就是一个普通的maven项目。src/main/java目录下为项目的启动程序和后续需要编写的业务代码。resources目录存放配置文件和资源文件,如web项目的js、css、image、jsp等。test目录存放单元测试类。

配置文件

在常规spring构建的web项目中的配置文件,比如spring-content.xml、web.xml等配置文件都不见了。能够看到的只有application.properties,它默认内置了一些配置,可以通过idea的提示功能,快速配置相应的参数,比如在文件内入手server,则会给出如下提示:

通过提示可以看出,内嵌tomcat默认的端口为8080。可以通过server.port=xx,重新指定端口号。

项目依赖

在之前的spring项目搭建我们需要了解每个功能都使用了spring的哪些核心依赖包,然后逐一引入。使用spring boot便无需关注那么多。来看一下pom.xml文件内容。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

<?xml version= "1.0" encoding= "utf-8" ?>

<project xmlns= "http://maven.apache.org/pom/4.0.0" xmlns:xsi= "http://HdhCmsTestw3.org/2001/xmlschema-instance"

      xsi:schemalocation= "http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" >

   <modelversion> 4.0 . 0 </modelversion>

   <parent>

     <groupid>org.springframework.boot</groupid>

     <artifactid>spring-boot-starter-parent</artifactid>

     <version> 2.1 . 3 .release</version>

     <relativepath/> <!-- lookup parent from repository -->

   </parent>

   <groupid>com.example</groupid>

   <artifactid>demo</artifactid>

   <version> 0.0 . 1 -snapshot</version>

   <name>demo</name>

   <description>demo project for spring boot</description>

 

   <properties>

     <java.version> 1.8 </java.version>

   </properties>

 

   <dependencies>

     <dependency>

       <groupid>org.springframework.boot</groupid>

       <artifactid>spring-boot-starter-web</artifactid>

     </dependency>

 

     <dependency>

       <groupid>org.springframework.boot</groupid>

       <artifactid>spring-boot-starter-test</artifactid>

       <scope>test</scope>

     </dependency>

   </dependencies>

 

   <build>

     <plugins>

       <plugin>

         <groupid>org.springframework.boot</groupid>

         <artifactid>spring-boot-maven-plugin</artifactid>

       </plugin>

     </plugins>

   </build>

 

</project>

看到pom里面的内容是不是感觉清爽到极致了。是的,忽略掉maven的元数据配置,其实我们仅仅引入了三部分的内容:

parent元素,引入了spring-boot-starter-parent的依赖管理,主要提供了整体版本控制和打包等内容;

dependencies元素中,引入了spring-boot-starter-web这个starter和单元测试的starter。

build元素中,引入了一个构建项目的maven插件。

而此刻,如果打开项目的jar包依赖,会看到已经引入了几十个功能相关的jar包了。

helloworld

编写一个可通过浏览器访问的hello web程序。在com.example.demo包下创建一个controller的包,并创建helloworldcontroller类。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

package com.example.demo.controller;

 

import org.springframework.web.bind.annotation.requestmapping;

import org.springframework.web.bind.annotation.restcontroller;

 

/**

  * @author zzs

  */

@restcontroller

public class helloworldcontroller {

 

     @requestmapping

     public string hello() {

         return "hello world!" ;

     }

}

像我们使用spring mvc一样,在controller中实现上面的代码。运行demoapplication中的main方法启动项目,在浏览器输入:http://localhost:8080/hello,页面显示出]hello world!],一个简单的rest接口请求便完成了。

单元测试

在demoapplicationtests中写一段简单的单元测试,代码如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

package com.example.demo;

 

import com.example.demo.controller.helloworldcontroller;

import org.junit.before;

import org.junit.test;

import org.junit.runner.runwith;

import org.springframework.boot.test.context.springboottest;

import org.springframework.http.mediatype;

import org.springframework.test.context.junit4.springrunner;

import org.springframework.test.web.servlet.mockmvc;

import org.springframework.test.web.servlet.request.mockmvcrequestbuilders;

import org.springframework.test.web.servlet.setup.mockmvcbuilders;

 

import static org.hamcrest.core.isequal.equalto;

import static org.springframework.test.web.servlet.result.mockmvcresultmatchers.content;

import static org.springframework.test.web.servlet.result.mockmvcresultmatchers.status;

 

@runwith (springrunner. class )

@springboottest

public class demoapplicationtests {

 

     private mockmvc mockmvc;

 

     @before

     public void init() {

         mockmvc = mockmvcbuilders.standalonesetup( new helloworldcontroller()).build();

     }

 

     @test

     public void testhello() throws exception {

         mockmvc.perform(mockmvcrequestbuilders.get( "/hello" ).accept(mediatype.application_json))

                 .andexpect(status().isok())

                 .andexpect(content().string(equalto( "hello world!" )));

     }

}

注意事项

至此,已经完成了springboot最基本的项目已经完成。这里再补充两条注意事项:

1、业务代码和新建的package一定要放在启动main方法的同级包下或下一级包下面,也就是说springboot的启动程序一定要在最顶层,否则启动时某些注解无法检测到。

2、如果业务中有其他的类中有main方法,注意注释掉或替换为单元测试的形式,因为springboot在启动时会寻找main方法,如果存在多个在使用java -jar启动时会出现莫名其妙的问题。

项目源代码: https://github测试数据/secbr/springboot-all/tree/master/demo

以上所述是小编给大家介绍的5分钟快速上手spring boot详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

原文链接:https://blog.csdn.net/wo541075754/article/details/88945215

查看更多关于5分钟快速上手Spring Boot的详细内容...

  阅读:15次