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请求中的参数取出来并绑定到业务方 ...
springmvc:SpringMVC入门
在此之前,先来学习MVC设计模式。MVC全名是(Model View Controller),是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。其实就是Controller负责接收并处理请求,响应客户端;Model包括模型数据和业务逻辑;View主要是呈现模型,与用户进行交互:
那么什么是SpringMVC呢?SpringMVC是实现了MVC设计模式的框架,同时是Spring框架的一个子模块,二者可以很好地结合使用,不需要整合。
SpringMVC核心组件接下来通过SpringMVC的工作流程来介绍SpringMVC各核心组件的名称及用法:
1、前端控制器(DispatcherServlet):接收前端页面的请求,并响应结果到前端页面,同时中间作请求转发,相当于中央处理器;2、处理器映射器(HandlerMapping): 根据请求的url来查找对应的处理器(将请求映射到Handle);3、处理 ...
spring:Spring事务管理
事务事务定义事务是正确执行一系列的操作(或动作),使得数据库从一种状态转换成另一种状态,且保证操作全部成功,或者全部失败。我们知道在JavaEE的开发过程中,service层的方法通常用于业务逻辑处理,而业务往往涉及到对数据库的多个操作。
以生活中常见的转账为例,假设某个方法要实现将A账户转账到B账户的功能,则该方法内必定有两个操作:先将A账户的金额减去要转账的数目,然后将B账户加上相应的金额数目,这个方法看似简单,但是需要这两个操作要么全部成功(表示本次转账成功);若有任意一方失败,则另一方必须回滚(即必须回到初始状态,全部失败)。所以上面介绍的事务其实就是指:一组操作是不可分割的,要么全部成功,要么全部失败。
事务的ACID四个特性我们知道事务具有ACID四个特性:原子性、一致性、隔离性和持久性。
原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生;一致性(Consistency):事务在完成后数据的完整性必须保持一致;隔离性(Isolation):多个用户并发访问数据库时,一个用户的事务不能被其他用户的事务所干扰,多个并发事务之间的数 ...