SpringBoot Web开发整合(上)
本篇来学习SpringBoot如何整合Web开发,由于其中涉及的内容非常多,因此分为三篇来进行记录。所谓的SpringBoot如何整合Web开发,其实就是对前面的一些具体细节的补充。本篇学习的内容具体包括:返回JSON数据、静态资源访问、文件上传和@ControllerAdvice等相关知识。
返回JSON数据默认实现JSON是目前主流的前后端数据传输方式,SpringMVC中使用消息转换器HttpMessageConverter对JSON的转换提供了很好的支持,在SpringBoot中这种支持更进一步得到了提升,也对相关的配置做了进一步的简化。在默认情况下,当开发人员新创建一个SpringBoot项目后,添加Web依赖,也就是web启动器:
1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>
这个依 ...
视图层技术整合
本篇学习SpringBoot如何整合视图层技术,其实这就是学习如何使用SpringBoot并结合视图层可以轻松搭建一个完整的Web应用,这里主要学习Thymeleaf(读作[taɪm lif],百里香)和FreeMarker。尽管在目前企业级的应用开发中,前后端分离是趋势,但是视图层技术还是占用一席之地。SpringBoot对视图层技术也提供了很好的支持,官方推荐使用的模板引擎是Thymeleaf,但是FreeMaker也支持,当然你可以像SSM中使用JSP等,但是非常不推荐使用。因此这里对于Thymeleaf和FreeMarker的介绍不会太深。
整合ThymeleafThymeleaf是新一代的Java模板引擎,类似于Velocity、FreeMaker等传统的Java模板引擎。但是Thymeleaf与它们的不同之处在于Thymeleaf支持HTML原型。如果你之前使用过JSP的话,你会发现不运行Java后端容器Tomcat,你是无法直接查看jsp网页的。但是Thymeleaf支持HTML原型,既可以让前端人员在浏览器中直接打开查看样式,也可以让后端人员结合数据来查看显示效果。更重 ...
SpringBoot基础配置
准备工作使用spring Initializr构建工具构建一个SpringBoot的Web应用,名称为hellospringboot,之后在项目根目录中新建controller包,同时在该包内新建MyController类,里面的代码为(忽略导包操作):
1234567@RestControllerpublic class MyController { @GetMapping("/hello") public String hello(){ return "hey,SpringBoot"; }}
然后运行启动类中的main方法,启动项目,在浏览器地址栏中输入http://localhosts:8080/hello即可访问到该页面。
不使用spring-boot-starter-parent入门篇说了在向pom.xml文件中添加依赖前需要先添加spring-boot-starter-parent,而spring-boot-starter-parent主要提供了如下默认的配置信息 ...
SpringBoot入门
什么是SpringBoot?SpringBoot可以快速启动一个生产级的项目,简化开发流程,让java开发变得简单粗暴。在以前学习使用SSM框架时,需要复杂、大量的配置文件和依赖,没有人管理极易造成依赖冲突,高低版本不兼容等问题。
为了更好的理清SSM开发的流程,这里简单回忆一下:配置环境–>创建工程–>构建目录结构–>组件依赖管理–>配置web容器–>设置组件参数–>业务开发–>测试与构建–>手动部署–>运维与监控等十个步骤。
那么使用SpringBoot后,应用开发流程就变为:配置环境(不需要搭建tomcat)–>Spring Initializr–>配置参数(可选)–>业务开发–>自动构建–>自动部署–>运维与监控等七个步骤。
SpringBoot的核心特性SpringBoot的核心特性有以下6点:1、极低的学习成本。只需要你会spring,那么就可以在一个小时内学会SpringBoot;2、可独立运行的spring项目。当你使用ssm框架时需要将项目编译为war包,然后上传至web服务器T ...
快速入门SpringBoot(进阶)
本篇笔记中主要介绍了以下几个内容:1、使用@Valid注解进行表单验证;2、使用AOP来处理请求;3、统一异常处理;4、之前是使用postman进行测试,现在介绍如何使用单元测试。注意本篇笔记使用了前面一篇《2小时入门Springboot》的红包项目代码。(阅读本篇文章,最好有AOP基础,否则比较吃力)
首先回忆起前面创建单个红包时的create方法:
12345678@PostMapping("/luckymoneys")public Luckymoney create(@RequestParam("sender")String sender, @RequestParam("money")BigDecimal money){ Luckymoney luckymoney = new Luckymoney(); luckymoney.setSender(sender); luckymoney.setMoney(money) ...
快速入门SpringBoot(基础)
在学习Springboot之前,你最好具备以下知识:1、使用Maven构建项目;2、熟悉Spring注解;3、了解RESTful API相关知识。需要说明的是你可以不会SpringMVC,但是需要注意Maven版本和Java版本保持一致等问题。
首先请确保你的电脑上安装了java1.8和Maven 3.5及以上,可以使用以下命令进行查看:
12java -versionmvn -version
第一个springboot程序第一步,使用spring Initializr新建一个项目ispringboot,具体操作如下(按照图中序号依次进行即可):
当然如果说你不是idea,那么你可以点击 这里,然后按照图示填写信息:
最后稍等一会,页面就会弹出下载文件,你只需要将其保存到本地即可:
然后删除图中蓝色的4个文件,这些目前使用不到的:
注意为保证本项目能正常运行,请将springboot的版本修改为2.1.3版,切记切记。
启动项目为了保证启动项目能看到一些信息,在com.envy.luckymoney包内新建一个controller包,里面新建一个HelloControll ...
IDEA中创建Maven多模块项目
写在前面在日常开发过程中经常会遇到Maven多模块的情况,那么如何创建Maven多模块呢?此处笔者结合常用的IDEA工具进行介绍,Eclipse、MyEclipse等工具创建Maven项目过程与之类似,因此就不过多介绍。
本文主要分为4个部分,第一部分创建parent项目,第二部分创建children项目,第三部分模块调用,第四部分运行项目。
创建parent项目1、打开IDEA工具,使用Maven来构建项目,请注意此处不要勾选模板,因为使用模板构建maven项目的速度非常慢,所以此处忽略模板,当后面需要某文件夹时可自行手动创建:
2、按照图示填入项目名称和模块名称:
3、配置工程路径,最后点击finish完成parent项目的构建过程:
4、由于parent项目只是用于管理各模块和第三方依赖,因此此处的src目录可以删除:
请注意parent项目的pom.xml文件是不能删除的,后续需要使用它来进行依赖管理。这样关于parent项目的创建过程就告一段落,接下来开始进行子模块的创建工作。
创建children模块创建children1模块1、鼠标选中parent模块,然后右键单 ...
springmvc:SpringMVC拦截器
学完了SpringMVC的数据绑定,接下来学习SpringMVC的拦截器。本篇主要介绍SpringMVC的拦截器配置及应用,同时也会介绍拦截器和过滤器之间的区别,以及明白SpringMVC拦截器在项目开发过程中的重要性。
接下来通过这张图来回忆之前关于SpringMVC的工作流程:
里面有一个非常重要的组件–前端控制器(DispatchServlet),也称中央控制器,因为它负责接收和响应http请求并协调SpringMVC各个组件完成请求处理工作。和其他Servlet一样,用户必须在web.xml文件中必须配置DispatchServlet,也就是说DispatchServlet的配置是开发SpringMVC拦截器的首要工作。
环境搭建使用Maven新建一个webapp项目,名称为springmvc_interceptor。毫无疑问第一步都是配置pom.xml:
12345678910111213141516<dependencies> <!--springmvc相关--> <dependency> <groupId> ...
springmvc:RESTful入门
接下来学习RESTful相关的知识,以及如何在SpringMVC中使用RESTful。在此之前先介绍一些什么是RESTful?REST(Representational State Transfer)表述性状态转移,REST并不是一种创新技术,它指的是一组架构约束条件和原则,符合REST的约束条件和原则的架构,我们就称之为RESTful架构。
RESTful的核心内容有三点:1、强调了资源和URI的关系(一一对应);2、资源在客户端和服务端之间的传送称之为资源的表述;3、资源在客户端发生变迁,进入到后续的状态,强调与之前状态不同称之为状态转移。总结起来就是一句话:资源在网络中以某种表现形式进行状态转移。
RESTful架构的特点:1、统一了客户端访问资源的接口;2、URL更加简洁,易于理解和便于扩展;3、有利于不同系统之间的资源共享。
RESTful具体来讲就是HTTP协议的四种形式表示四种基本操作:1、GET:获取资源;2、POST:新建资源;3、PUT:修改资源;4、DELETE:删除资源。
以RESTful风格实现某个课程的增删改查功能的URL访问方式为:查询课程:http:// ...
springmvc:数据绑定(JSP版)
接下来学习SpringMVC的数据绑定,本篇主要介绍SpringMVC数据绑定的原理及如何使用。那么什么是数据绑定呢?如果之前学过Vue等框架时,就应该不陌生了,但是可能此处的效果和Vue中的有些区别。此处的数据绑定是指:将Http请求中的参数绑定到Handler业务方法中作为参数。
在没有接触SpringMVC之前,你还会发现servlet中的doGet或者doPost方法中都会有httpRequest和httpResponse,同时由于从request中获取的数据类型都是String类型,因此如果需要获取Integer类型,还需要进一步的转换。遇到前台form表单的时候,需要借助于request.getParameter("name属性值")来逐一获取信息,然后在业务方法中将这些参数封装成一个对象,其实这个过程挺复杂的。
在入门章节里面就说明使用SpringMVC,只需在业务方法中定义对应的形参即可(如需要获取Integer类型的Id,只需在形参中定义Integer类型的Id即可),SpringMVC会自动将httpRequest请求中的参数取出来并绑定到业务方 ...
