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

时间: 2022-07-29 08:01:17 浏览次数:221

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

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 ,你值得捅有!

  非常感谢您读完蓝港网络的这篇文章:"Spring-Boot快速搭建web项目详解",仅为提供更多信息供用户参考使用或为学习交流的方便。我们公司提供:网站建设、网站制作、官网建设、SEO优化、小程序制作等服务,欢迎联系我们提供您的需求。

标签:

Copyright © 常州蓝港网络科技有限公司 苏ICP备2022017479号-1