SpringBoot快速搭建web项目详细步骤总结

最近在学习Spring Boot 相关的技术,刚接触就有种相见恨晚的感觉,因为用spring boot进行项目的搭建是在太方便了,我们往往只需要很简单的几步,便可完成一个spring MVC项目的搭建,感觉就是下图:

好,下面就本人搭建项目的过程简单说说如何快速搭建一个spring MVC项目,相信我,spring-boot这趟车,你上了根本就停不下来了!

下面是这篇博客的主要内容:

  • spring boot 介绍
  • spring boot 项目快速搭建
  • spring-boot中单元测试
  • spring boot 与mybatis 的集成

一、初识spring boot

1、web项目传统的搭建方式

导入jar包,配置tomcat 的context.xml 、web.xml,配置class path ,启动。我靠,怎么一堆报错?classNotFoundException?尼玛哥不是导入了jar包吗,哦版本不对,那我使用maven管理jar包咯,千辛万苦终于配置好maven 并学会了如何使用,启动也没报错了,但是尼玛已经过去打半天了我都还没有开始正式代码的书写,赶紧开始写业务代码吧,又发现spring 中配置老是尼玛的报错,而我他妈只是想要搞个简单的发邮件功能啊。

所以说,自己搭建web项目,很多步骤都是重复性的,有没有什么工具可以一步达成啊?我只想快点投入到实际业务开发中去,我再也不想折腾jar包版本问题,再也不想折腾那繁琐的配置过程(虽然这是一个很好的学习过程),那么,spring boot 估计是老铁你不二的选择!

2、spring boot 是什么?

什么是spring boot?直接copy官网的介绍:

原谅我并不咋地的英文,官网说,spring boot 可以让你以一种非常简单的方式构建一个机遇Application 的spring 项目,而你索要做的仅仅是run 这个项目,spring boot 集成了主流的框架,我们构建项目大概只需要两三分钟,spring boot 项目,只需要很少的配置即可。

用了spring boot 后,你会发现,什么配置问题,什么jar包问题统统没有了,你的生产效力会提高很多,因为,spring boot 已经帮你弄好了一个项目原型,你只需要在这个原型上添加自己的业务代码,自己的service 和dao就万事大吉了!

spring boot 真的有那么厉害?好,下面就开始进入正题,说说怎么搭建利用spring boot搭建项目。

二、spring boot 项目快速搭建

1、快速搭建一个spring MVC项目

来开头来个Hello World先吧,下面紧跟我的步伐,利用spring boot 快速搭建一个MVC项目

第一步,上官网,进行项目原始jar 包的选取,官网在线搭建地址如下:https://start.spring.io/,看图:

特别说明下:在选择你要的jar 包中,一般包括三部分:web部分--包含 了spring、springboot 等常用的web开发必须jar包;spring提供的工具类部分(devTool),这个用于热部署效果;数据库部分,spring boot自动可以帮你继承各种数据库框架,我这里以mybatis 为演示例子,最后选完jar包的效果如下:

第二步、下载项目并导入IDE,当然,需要版本管理工具的支持,这里推荐IntelliJ IDEA 开发工具(它简直就是web开发的标配!),具体看下面截图:

  

解压后得到项目文件,然后,就可以打开我们的IDE,这里已我最爱的IntelliJ idea为例子

打开idea,找到file-->open-->选择项目的路径,找打pom文件-->以project 形式打开

第三步、hello spring项目 大概长什么样子?打开项目之后,maven 会加载必须的jar包,这段时间,你可以去喝杯香醇的龙井茶或者咖啡,当项目构建完成之后,你会看到下面这样的典型maven目录结构:

具体各个目录放什么,请参考截图,这里补充说明的是,HelloSpringbootApplication是整个项目的入口,我们启动项目不再是启动tomcat,而是运行这个类,这个类的main方法就是整个项目的main方法即执行入口,

第四步,写hello demo了。新建一个package demo,然后新建一个类HelloSpringBoot,写入以下代码

@RestController
public class HelloSpringBoot {
  @RequestMapping(path = {"/helloSpringBoot"})
  public String HelloSpring (){
    System.out.println("hello spring boot");
    return "hello spring boot";
  }
}

我们先不解释这个类里面的东西,先配置并启动网站,初步感受下spring boot的魔力:

在启动网站前,由于spring boot 是默认自动注册加载数据库相关的类文件的,所以为了不报错,我们需要打开数据库并在resource目录下的application.property中加入数据库配置相关文件,这里以mysql为例子,配置文件如下:

spring.datasource.url=jdbc:mysql://localhost:3306/wenda?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root

配置文件中各个字段含义估计读者也能看懂,后面会再具体说明。

当然,如果没有安装数据库,读者也可以在HelloSpringbootApplication 类中利用exclude属性声明不自动注册加载数据库相关文件,具体参考下面的代码:

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,MybatisAutoConfiguration.class})//这里的MybatisAutoConfiguration.class对应你的数据库框架
public class HelloSpringbootApplication {

  public static void main(String[] args) {
    SpringApplication.run(HelloSpringbootApplication.class, args);
  }
}

然后,我们所有的工作就完成了,可以启动网站了,见证奇迹的时候到了。

找到HelloSpringbootApplication类,双击打卡,右击鼠标,run,然后项目就启动了。

启动网站之后,输入http://localhost:8080/helloSpringBoot即可访问对应的方法。浏览器以及idea后台效果如图

这里简单解释下这个类里面的东西的含义:

首先是@RestController这个注解:用过spring的大佬估计知道是什么东西,当我们其他类要通过spring引用该类时,第一步就是要将该类注册到spring中,@RestController就是相当于将这个类注册到spring容器的意思当然,还有一种比较常用的就是@Controller,具体他们两区别后面再讨论吧。

然后就是@RequestMapping,通过设置这个注解里面面的path属性,就可以声明相对于项目根路径(localhost:8080)的访问路径。

2、spring boot 项目中利用springMVC实现传参

上面的demo中的方法只是一个非常简单的实例,在实际生产中, 我们的应用不可能这么简单的,前端还需要传输参数到后台,所以,用spring boot 构造的项目中,又如何实现传参呢?(感觉下面的都是在总结sprign MVC相关的内内容了,所以大神勿喷我脱离主题,因为感觉spring boot 如果单独总结的话,貌似的确没什么好总结的,而且spring boot 天生就不可能和其他spring 组件分割)具体请参开下面代码例子:

@RestController
public class HelloSpringBoot {/**
   * url传参,访问的路径类似这样:localhost:8080/getParamDemo1/1
   * 方法体中的参数要在前面加注释,@PathVariable,代表url中的参数
   */
  @RequestMapping(path = {"/getParamDemo1/{id}"})
  public String getParamDemo1 (@PathVariable("id") int userId){
    System.out.println("get param " + userId);
    return "success get param";
  }
  /**
   * 当然,你也可以通过这种传参方式:localhost:8080/getParamDemo?param1=1或者直接表单提交参数
   * 当然,同时方法中参数声明的注释也要变成@RequestParam,代表请求参数,required属性说明了参数是否是必须的
   */
  @RequestMapping(path = {"/getParamDemo2"})
  public String getParamDemo2 (@RequestParam(value="param1",required = false) int param){
    System.out.println("get param " + param);
    return "success get param";
  }
}

3、构建restful编程风格

最近,resultful风格编程挺火的(虽然个人觉得不可盲目跟风),而spring boot中利用其内置的spring MVC等框架,可以非常简单地实现这种编程风格。

例如说,我要请求查询一个数据,在resultful类的编程风格中,查询对应的是get请求,那么,spring boot(准确说是spring MVC) 可以针对不同的请求进行处理,请看下面代码:

@RestController
public class HelloSpringBoot {

  /**
   * 通过设置RequestMapping的method属性便可以设置该方法可处理的对应请求了,例如下面的getRequestDemo方法只会处理get请求
   */
  @RequestMapping(path = {"/getRequestDemo"},method = RequestMethod.GET)
  public String getRequestDemo (@RequestParam(value="param1",required = false) int param){
    System.out.println("get request test ,get param " + param);
    return "success get param";
  }
  /**
   * 下面的deleteRequestDemo方法只会处理delete请求
   */
  @RequestMapping(path = {"/deleteRequestDemo"},method = RequestMethod.DELETE)
  public String deleteRequestDemo (@RequestParam(value="param1",required = false) int param){
    System.out.println("delete request test ,get param " + param);
    return "success get param";
  }
}

另外,利用上面说的url中的值(类似这个:path="/member/{userid}")进行资源定位,也非常符合resultful的风格要求,例如这path="/getParamDemo1/{userid}"的配置就是对应的就是对会员级别的某个用户(由userid定位)进行某些操作,如果要删除该用户,则对应http请求的delete请求即可。

通过上面的那些步骤,估计读者对于如何用spring boot 进行一个简单的web项目快速搭建已经清楚了,下面在spring boot搭建的项目中如何进行单元测试。

三、spring boot 项目中的单元测试问题

spring boot 中集成了junite框架,对于单元测试,也不用写各种繁琐的类了,只需要对测试类进行一定的注释,spring boot 便会帮你做好一切,就算是数据库相关的操作,spring boot 也能很好地进行测试,具体还是看代码例子,下面是一个简单的测试业务类方法的例子:

首先,我们新建一个service 层,新增一个demo类,最后的demo代码如下:

@Component
public class ServiceDemo {
  public String testDemo(){
    String rtnAfterDosomething = "我是返回结果";
    //这里是业务代码
    return rtnAfterDosomething;
  }
}

下面的代码是测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class ServiceDemoTest {
  @Autowired
  ServiceDemo serviceDemo;
  @Test
  public void testDemo() {
    String rtn = serviceDemo.testDemo();
    Assert.assertEquals(rtn, "我是返回结果");
  }

}

如果要测试数据库dao,也是类似的,但是特别注意的是,测试之前必须启动项目(即HelloSpringbootApplication的run方法必须运行起来),否则将会包can not find ApplicationContext的错误。

四、spring boot中配置数据库框架(以mybatis为例子)

在spring boot中集成数据库相关的开源框架也是很方便的(当然,记得在一开始新建项目的时候引用相关的jar包),当你上面的步骤都没什么错误的时候,你只需要简单地配置下applocation.properties文件即可

spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
#下面这条配置声明了mybatis的配置文件路径,classpath对应的是和这个文件统计的resources
mybatis.config-location=classpath:mybatis-config.xml

目录的文件结构参考下面截图:

ok,mybatis 的引用配置便弄好了,下面我们尝试利用mybatis 这个数据库框架,进行一个数据库的简单查询操作,首先,看下面的mybatis-config.xml的配置内容,读者可以以这个为模板进行配置,当然,想了解更具体的mybatis配置说明,建议去官网看看,这里不展开了:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

  <settings>
    <!-- Globally enables or disables any caches configured in any mapper under this configuration -->
    <setting name="cacheEnabled" value="true"/>
    <!-- Sets the number of seconds the driver will wait for a response from the database -->
    <setting name="defaultStatementTimeout" value="3000"/>
    <!-- Enables automatic mapping from classic database column names A_COLUMN to camel case classic Java property names aColumn -->
    <setting name="mapUnderscoreToCamelCase" value="true"/>
    <!-- Allows JDBC support for generated keys. A compatible driver is required.
    This setting   forces generated keys to be used if set to true,
     as some drivers deny compatibility but still work -->
    <setting name="useGeneratedKeys" value="true"/>
  </settings>

  <!-- Continue going here -->

</configuration>

恩,然后,就可以进行数据库的操作了,我简单用mysql建了个名字为springboot的数据库,在库里面建了一个简单的demo表(具体怎么建表那些不用我说了吧?实在没有接触过数据库的同学,可以自行百度或者谷歌去咯),然后,dao代码如下:

@Mapper
public interface DemoDao {
  @Select({"select demo_param from demo "})
  String queryDemo();
}

注意,mybatis 的dao是一个接口,关于mybatis更多的内容,请读者参开官方文档,这里不展开了。

然后,就在原来的ServiceDemo类中调用一下吧,代码看下图吧: 

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import springboot.hello.helloSpringboot.dao.DemoDao;

@Component
public class ServiceDemo {
  @Autowired
  DemoDao demoDao;
  public String testDemo(){
    String rtnAfterDosomething = "我是返回结果";
    //这里是业务代码
    return rtnAfterDosomething;
  }
  public String queryDemo(){
    return demoDao.queryDemo();
  }
}

ok,简单写个测试类,出现小绿条,测试成功。

然后,所有项目原型的工作完成了,然后,我们就可以进行我们核心业务开发了,很快有没有?很爽有木有?所以说,spring boot 搭建项目的确飞快,可以让我们省去很多机械的前期操作,读者们赶紧去探索下吧,spring boot ,你值得捅有!

OK,今天总结到这里,这个项目的代码在gitHub上这个地址,需要的人自取:https://github.com/lcpandcode/helloSpringboot.git

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • IDEA上面搭建一个SpringBoot的web-mvc项目遇到的问题

    这几天一直在研究IDEA上面怎么搭建一个web-mvc的SpringBoot项目,看网上的教程一步步的搭建,可是还是出现一堆的问题. 为了让大家以后少走一些弯路,我在这里分享一下我这几天研究的成果,也希望对大家能有所帮助. 这里先介绍一下各种环境的配置信息:idea2016.2.1  jdk1.8.0_31 因为SpringBoot中是内置tomcat的,所以也就不需要额外的tomcat配置了,现在开始讲如何在idea上面搭建SpringBoot web-mvc项目了 步骤一:在IDEA中新建一

  • SpringBoot之Helloword 快速搭建一个web项目(图文)

    背景: Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者. Spring Boot(英文中是"引导"的意思),是用来简化Spring应用的搭建到开发的过程.应用开箱即用,只要通过 "just

  • 运用springboot搭建并部署web项目的示例

    前言 一直以来都是用springmvc+mybatis进行后端接口开发工作,最近闲来无事,根据现有功能需求,用springboot+mybatis部署一套简单的web项目. 所用工具 IntelliJ IDEA 2018.1.4 JDK 1.8 apache-tomcat-8.0.50 所解决的问题 1.如何用idea创建springboot项目 2.如何进行 服务器.数据库.mybatis.视图解析器的配置 3.如何使用mybatis generator 自动生成代码 4.如何使用multip

  • SpringBoot快速搭建web项目详细步骤总结

    最近在学习Spring Boot 相关的技术,刚接触就有种相见恨晚的感觉,因为用spring boot进行项目的搭建是在太方便了,我们往往只需要很简单的几步,便可完成一个spring MVC项目的搭建,感觉就是下图: 好,下面就本人搭建项目的过程简单说说如何快速搭建一个spring MVC项目,相信我,spring-boot这趟车,你上了根本就停不下来了! 下面是这篇博客的主要内容: spring boot 介绍 spring boot 项目快速搭建 spring-boot中单元测试 sprin

  • 利用Pycharm + Django搭建一个简单Python Web项目的步骤

    一.Pycharm中安装Django 此教程默认你已安装并配置了Python 3.7.6) 1.File->Settings 二.搭建Django项目 1.File->New Project 2.新窗口打开,会出现以下的文件 简单解释一下这几个文件: **init.py:**这是一个初始化的空文件,一般我们不需要动它. settings.py: 这是一个配置文件,里面有关于语言.时区.安装的app声明等等信息: urls.py: 这个文件里指明了在访问一个页面时要调用的视图啊等的映射,确保在访

  • 带你使用webpack快速构建web项目的方法

    使用webpack构建web项目以及热部署插件的使用,按以下步骤,能帮助你快速构建和理解~ 详细学习还得靠官方文档! 一,基础构建部分 大前提!你得先安装了Node.js此处不赘述. 1,创建一个文件夹 2,在当前文件夹子下打开命令行工具 3,项目初始化(创建package.json文件) npm init -y 4,安装依赖 版本搭配如下: "devDependencies": { "webpack": "^4.17.1", "web

  • node使用Koa2搭建web项目的方法

    随着Node.js的日益火热,各种框架开始层出不穷的涌现出来,Node.js也开始逐渐的被应用到处理服务端请求的场景中.搭建Web项目的框架也随之开始出现--express.koa.koa2.egg等,当然要了解其好坏还是要自己去啃源码的.本文将不会涉及到源码,只是带领初学者简单了解下Koa2的基本使用,欢迎大家在评论中互相交流学习. 注意:koa2使用了ES7的语法,所以使用时请升级Node版本到最新.了解更详细的源码信息可以到git上的koajs/koa去了解 1. 项目目录结构 2. 代码

  • springmvc+maven搭建web项目

    本文实例为大家分享了springmvc maven搭建web项目的具体步骤,供大家参考,具体内容如下 1.创建一个maven project 为spring1 2.进行项目的配置:默认的java 1.5 在properties中选择project facts项目进行配置,反选web之后修改java环境为1.8.修改之后如下图: 3. 配置好的工作目录如下: 4 修改pom.xml文件 增加两个jar包:servlet和spring webmvc pom.xml如下: <!DOCTYPE web-

  • Mac下快速搭建PHP开发环境步骤详解

    最近做了一个后端的项目,是用PHP+MySQL+Nginx做的,所以把搭建环境的方法简单总结一下. 备注: 物料:Apache/Nginx+PHP+MySQL+MAMPMac OS 10.12.1 自带Apache,Nginx和PHP 1.运行Apache 查看Apache版本,在终端根目录输入如下命令: sudo apachectl -v 终端会输出Apache的版本及built时间 Server version: Apache/2.4.23 (Unix) Server built:   Au

  • 部署vue+Springboot前后端分离项目的步骤实现

    单页应用 vue经常被用来开发单页应用(SinglePage Web Application,SPA),什么叫做单页应用呢,也就是只有一张web页面的应用,单页应用的跳转只需要刷新局部资源,大大加快的了我们页面的响应速度 前端页面打包 打开vue工程,在项目根目录下创建一个配置文件:vue.config.js,然后在里面写入以下内容: module.exports = { assetsDir: 'static', // 静态资源保存路径 outputDir: 'dist', // 打包后生成的文

  • 使用Idea简单快速搭建springcloud项目的图文教程

    前言: 开发工具:IntelliJ IDEA 2020版 (Ultimate Edition) 框架:spring boot .spring cloud 搭建一套spring cloud微服务系统,实现服务之间的调用. 需要搭建一个父工程springcloud-test,一个服务注册中心eureka-server,两个微服务cloud-client,cloud-provider. 两个微服务均注册到服务注册中心. 一.搭建父项目 2. 3. (1)删掉src目录 (2)定义pom.xml文件 <

  • 详解vite+ts快速搭建vue3项目以及介绍相关特性

    vite 尤大在 Vue 3.0 beta 直播中推荐了 vite 的工具,强调:针对Vue单页面组件的无打包开发服务器,可以直接在浏览器运行请求的 vue 文件 很新颖,这篇博客用它来搭建一个 vue3 的项目试试 Vite 是面向现代浏览器,基于原生模块系统 ESModule 实现了按需编译的 Web 开发构建工具.在生产环境下基于 Rollup 打包 快速冷启动服务器 即时热模块更换(HMR) 真正的按需编译 node >= 10.16.0 搭建 使用 vite 搭建项目 npm init

  • IDEA快速搭建jsp项目的图文教程

    推荐教程 idea2021激活 idea2020.3最新激活 idea无限重置 IDEA搭建jsp环境 为了方便在IDEA中集成tomcat环境搭建好WEB的jsp项目 先讲解原理: 首先在IDEA中加入WEB模块 配置IDEA将WEB模块打包,运行tomcat时会编译,打包到一个文件夹路径 配置Tomcat服务器,通过IDEA将打包后的项目(编译的输出路径)部署到tomcat 第一步.去除原先的WEB模块 第二步.添加Web模块 指定正确的web.xml位置 第三步将web模块进行打包 第四步

随机推荐