Spring-Boot快速搭建web项目详解

发布时间:2025-09-01 点击:5
下面是这篇博客的主要内容:
1、spring boot 介绍
2、spring boot 项目快速搭建
3、spring-boot中单元测试
4、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搭建项目。
2、spring boot 项目快速搭建
第一步,上官网,进行项目原始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)的访问路径。
@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编程风格
@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配置说明,建议去官网看看,这里不展开了:
恩,然后,就可以进行数据库的操作了,我简单用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 ,你值得捅有!



点击广告平台快照不更新的因素有哪些?
长沙做网站四个月的经验和体会
网站建设中必须定制的要素
百度搜索应该关注的5个问题是什么?
公司网站建设制作时这价格方面的问题不得不注意
企业中需要重视的地方
网站建设重中之重
营销型网站建设应该满足哪些方面?