202009-27 Springboot错误处理机制实现原理解析 1.默认的错误机制默认效果①在浏览器中访问不存在的请求时,springboot默认返回一个空白页面浏览器的请求头②客户端访问时,返回json数据{"timestamp":"2020-03-24T02:49:56.572+0000","status":404,"error":"NotFound","message":"Nomessageavailable","path":"/"}客户端访问的请求头原理可以参照ErrorMvcAutoConfiguration错误处理的自动配置给容器中添加了以下组件1.DefaultErrorAttribute... 继续阅读 >
202009-27 SpringBoot登录验证码实现过程详解 今天记录一下验证码的实现,希望能够帮助到大家!首先我们看一下实现的效果:此验证码的实现没有用到太多的插件,话不多说直接上代码,大家拿过去就可以用。中间用到了org.apache.commons.lang3.RandomUtils工具类,需要pom配置:<!--https://mvnrepository.com/artifact/org.apache.commons/commons-lang3--><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><v... 继续阅读 >
202009-27 springboot+vue实现websocket配置过程解析 1.引入依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId><version>1.3.5.RELEASE</version></dependency>2.配置ServerEndpointExporter@ConfigurationpublicclassWebSocketConfig{@BeanpublicServerEndpointExporterserverEndpointExporter(){returnnewServerEndpointExporter();}}这个bean会自动注册使用了@ServerEndpoint注解声... 继续阅读 >
202009-27 SpringBoot为啥不用配置启动类的实现 前言在学习SparkJava、Vert.x等轻量级Web框架的时候,都遇到过打包问题,这两个框架打包的时候都需要添加额外的Maven配置,并指定启动类才能得到可执行的JAR包;而springboot项目,似乎都不需要额外的配置,直接package就可以得到可执行的JAR包,这是怎么回事呢?Vert.x要怎么配?我们先来看看,Vert.x打包做哪些配置1)引入maven-shade-plugin插件2)在插件中指定在package完成时触发shade操作3)指定启动类<plugin><artifactId... 继续阅读 >
202009-27 SpringBoot异步调用方法实现场景代码实例 一、背景项目中肯定会遇到异步调用其他方法的场景,比如有个计算过程,需要计算很多个指标的值,但是每个指标计算的效率快慢不同,如果采用同步执行的方式,运行这一个过程的时间是计算所有指标的时间之和。比如:方法A:计算指标x,指标y,指标z的值,其中计算指标x需要1s,计算指标y需要2s,指标z需要3s。最终执行完方法A就是5s。现在用异步的方式优化一下方法A异步调用方法B,方法C,方法D,方法B,方法C,方法... 继续阅读 >
202009-27 Springboot内置tomcat配置虚拟路径过程解析 在Springboot中默认的静态资源路径有:classpath:/METAINF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,从这里可以看出这里的静态资源路径都是在classpath中(也就是在项目路径下指定的这几个文件夹)试想这样一种情况:一个网站有文件上传文件的功能,如果被上传的文件放在上述的那些文件夹中会有怎样的后果?网站数据与程序代码不能有效分离;当项目被打包成一个.jar文件部署时,... 继续阅读 >
202009-25 SpringBoot如何通过yml方式整合Mybatis 本来打算写个使用Sharding-JDBC的例程,但是在搭建Mybatis的过程中,一波三折,因为好久没搭建项目了,另外加上换了电脑。所以很破折,在这里记录一下SpringBoot整合Mybatis吧。可能很简单,但是我长时间没用忘记了,我这里备忘一下吧。一、项目目录结构注意这里Application文件的位置,它是与controller、entity、mapper、service等包处于并列的关系。二、数据库文件SETNAMESutf8mb4;SETFOREIGN_KEY_CHECKS=0;----... 继续阅读 >
202009-25 SpringBoot如何IDEA中实现热部署 好的热部署让开发调试事半功倍,这样的“神技能”怎么能错过呢,使用过IDEA的童鞋赶紧进来撸一把吧。学习目标快速学会在项目中使用热部署插件运行项目,提高开发效率。具体步骤idea版本是2019.3一、开启IDEA的自动编译(静态)具体步骤:打开顶部工具栏File->Settings->Build->Compiler然后勾选Buildprojectautomatically。二、开启IDEA的自动编译(动态)具体步骤:同时按住Ctrl+Shift+Alt+/然后进入Registr... 继续阅读 >
202009-25 Springboot视图解析器ViewResolver使用实例 SpringMVC提供的ViewResolver可以分为两大类:面向单一视图和面向多视图类型。所谓面向单一视图指可通过视图模板的位置来定位视图,面向多视图需要额外的配置文件来确定视图。项目结构如下(Idea)代码packagecom.syu.config;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.View;importorg.springframework.web.serv... 继续阅读 >
202009-25 SpringBoot启动器Starters使用及原理解析 Starters是什么Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成Spring及其他技术,而不需要到处找示例代码和依赖包。如你想使用SpringJPA访问数据库,只要加入spring-boot-starter-data-jpa启动器依赖就能使用了。Starters命名规则SpringBoot官方的启动器都是以spring-boot-starter-命名的,代表了一个特定的应用类型。第三方的启动器不能以spring-boot开头命名,它们都被SpringBoot官... 继续阅读 >
202009-25 Springboot读取templates文件html代码实例 SpringBoot里面没有我们之前常规web开发的WebContent(WebApp),它只有src目录在src/main/resources下面有两个文件夹,static和templatesspringboot默认static中放静态页面,而templates中放动态页面在不使用第三方jar包的情况下,Springboot不能直接访问templates下的静态页面,需要加其他jar包依赖。代码如下importorg.slf4j.Logger;importorg.slf4j.LoggerFactory;importorg.springframework.stereotype.Controller;impor... 继续阅读 >
202009-25 Jenkins自动化部署springboot代码实例 一、linux按jar包名称部署1.执行shellPID=$(ps-ef|grepapp.jar|grep-vgrep|awk'{print$2}')if[-z"$PID"]thenechoApplicationisalreadystoppedelseechokill$PIDkill$PIDfi2.调用顶层maven目标cleanpackage-Dmaven.test.skip=true3.执行shellcdtargetBUILD_ID=dontKillMenohupjava-jarapp.jar&二、linux按端口部署1.执行shellPID=$(lsof-i:端口号|awk'{print$2}'|tail-n1)if[-z"$P... 继续阅读 >
202009-25 SpringBoot项目调优及垃圾回收器的比较详解 一、SpringBoot项目在外部Tomcat启动时加载两次如下所示,spring标志出现两次(截取部分代码)._________/\\/___'_____(_)______\\\\(()\___|'_|'_||'_\/_`|\\\\\\/___)||_)|||||||(_||))))'|____|.__|_||_|_||_\__,|////=========|_|==============|___/=/_/_/_/::SpringBoot::(v1.5.7.RELEASE)2020-04-0216:57:29.505INFO19964---[ost-startSto... 继续阅读 >
202009-25 SpringBoot集成Elasticsearch过程实例 1.准备工作需要提前安装好Elasticsearch,访问地址:http://127.0.0.1:9200/得到以下结果,得到cluster_name,下面配置使用。{"name":"O8GslS3","cluster_name":"docker-cluster","cluster_uuid":"pviTqfXtR3GtnxF-Po-_aA","version":{"number":"6.5.0",......},"tagline":"YouKnow,forSearch"}2.使用Maven创建SpringBoot工程配置Maven的pom.xml文件<parent><groupId>org.springframework... 继续阅读 >
202009-25 SpringBoot集成JWT生成token及校验方法过程解析 GitHub源码地址:https://github.com/zeng-xian-guo/springboot_jwt_token.git封装JTW生成token和校验方法publicclassJwtTokenUtil{//公用密钥-保存在服务端,客户端是不会知道密钥的,以防被攻击publicstaticStringSECRET="ThisIsASecret";//生成TrokepublicstaticStringcreateToken(Stringusername){//签发时间//DateiatDate=newDate();//过地时间1分钟后过期//CalendarnowTime=Cale... 继续阅读 >
202009-25 SpringBoot读取resource文件代码实例 Java标准库中的java.net.URL类和标准处理器对于处理低层的资源没有提供很好的功能。例如,并没有提供一个URL的实现能够从classpath或者ServletContext中读取资源等等。因此,在Spring中提供了这样一个Resource接口,能够更加方便的读取各种资源。1、使用resourceUtilFilefile=ResourceUtils.getFile("classpath:config/city.config.json");2、注解,注入publicabstractclassBaseController{@Value("classpath:config... 继续阅读 >