202010-18 Spring boot route Controller接收参数常用方法解析 Controller接收参数的常用方式总体可以分为三类。第一类是Get请求通过拼接url进行传递,第二类是Post请求通过请求体进行传递,第三类是通过请求头部进行参数传递。1@PathVariable接收参数请求方式:localhost:7001/param/123请求示例:代码示例:@GetMapping("{id}")publicStringgetPathVariable(@PathVariableStringid){return"id="+id;}2@RequestParam接收参数使用这个注解需要注意两个点,一是加了这个参数后则请求中... 继续阅读 >
202010-18 SpringBoot使用jasypt加解密密码的实现方法 jasypt是一个通用的加解密库,我们可以使用它在配置文件中对数据库密码进行加密,以确保其安全性。1、注入依赖<dependency><groupId>com.github.ulisesbocchio</groupId><artifactId>jasypt-spring-boot-starter</artifactId><version>2.1.1</version></dependency>2、配置文件#以数据库密码加密为例##数据源配置spring.datasource.url=jdbc:mysql://lochost:3306/jasypt?characterEncoding=utf8spring.datasource.usernam... 继续阅读 >
202010-16 SpringBoot快速配置数据源的方法 SpringBoot如何快速配置数据源;有如下两种方式:通过spring-boot-starter-jdbc快速配置数据源自定义数据源DataSource首先我们需要明确数据源DataSource有什么作用:通过DataSource可以获取数据库连接Connection通过DataSource创建JdbcTemplate操作数据库实际项目中,我们在配置数据源的时候会指定数据库连接池,比如流行的Hikari(spring默认的数据库连接池)、C3p0、Dbcp2以及阿里巴巴的Druid。一、使用数据库连接池应用... 继续阅读 >
202010-16 SpringBoot中EasyExcel实现Excel文件的导入导出 前言在我们日常的开发过程中经常会使用Excel文件的形式来批量地上传下载系统数据,我们最常用的工具是Apachepoi,但是如果数据到底上百万时,将会造成内存溢出的问题,那么我们怎么去实现百万数据批量导入导出。正文EasyexcelEasyexcel是阿里巴巴的开源项目,用来优化Excel文件处理过程:poi消耗内存严重:Java解析、生成Excel比较有名的框架有Apachepoi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式... 继续阅读 >
202010-16 SpringBoot+Redis实现数据字典的方法 前言我们在日常的开发过程中针对一些字段采用整型的方式去代替某些具体的含义,比如性别0代表男,1代表女。如果只是一些不会变更的转译我们可以采用常量或者枚举类的方式来实现,但是事实上我们也会遇到那种可能需要变更的,显然这种场景下使用枚举类这种方式是不合理的,那么如何动态地去进行转译呢?正文数据字典数据字典(Datadictionary)是一种用户可以访问的记录数据库和应用程序元数据的目录。主动数据字典是指在对数据库... 继续阅读 >
202010-16 springboot自定义redis-starter的实现 spring时代整合redisspring我相信只要是一个Java开发人员我相信再熟悉不过了,几乎垄断了整个JavaEE的市场份额,话不多说进入正题。首先看看我们在spring中整合redis需要做什么1、首先maven工程的话不用想先导入依赖<!--jedis--><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.4.2</version></dependency><!--2、spring整合Redis的jar包--><dependency><groupId>or... 继续阅读 >
202010-15 Springboot基于maven打包分离lib及resource 之前在部署SpringBoot项目时,经常因为只修改了一小处代码、或者只更新了某个jar包,但是却需要将整个项目重新打包、上传、部署,整个包一般都会达到40-60M,每次都重复这个操作真的很耗费时间,因此就想是否能够将依赖lib与项目代码分离出来,每次部署只需要发布代码即可。项目发版,为了应对更新多变的依赖jar包,实现增量或替换依赖jar包,越来越多的企业实现源代码和依赖jar包和依赖配置分离,更好的应对复杂多变的现场和生产... 继续阅读 >
202010-15 Springboot集成JUnit5优雅进行单元测试的示例 为什么使用JUnit5JUnit4被广泛使用,但是许多场景下使用起来语法较为繁琐,JUnit5中支持lambda表达式,语法简单且代码不冗余。JUnit5易扩展,包容性强,可以接入其他的测试引擎。功能更强大提供了新的断言机制、参数化测试、重复性测试等新功能。ps:开发人员为什么还要测试,单测写这么规范有必要吗?其实单测是开发人员必备技能,只不过很多开发人员开发任务太重导致调试完就不管了,没有系统化得单元测试,单元测试在系... 继续阅读 >
202010-15 springboot使用Logback把日志输出到控制台或输出到文件 一:日志:1、配置日志级别日志记录器(Logger)的行为是分等级的。如下表所示:分为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL默认情况下,springboot从控制台打印出来的日志级别只有INFO及以上级别,可以配置日志级别设置日志级别logging.level.root=WARN这种方式只能将日志打印在控制台上二、Logback日志springboot内部使用Logback作为日志实现的框架。Logback和log4j非常相似,如果你对log4j很熟悉,那对logback很快就会... 继续阅读 >
202010-15 h2database在springboot中的使用教程 h2为轻量级数据库,使用特别方便,它可以不使用数据库服务器,直接嵌入到java程序中。可以配置持久化,同样也可以不持久化(数据在内存中)进程结束后,数据就释放,用做测试和演示特别方便。自带后台管理,非常方便,开源免费类库,使用maven简易安装可以同应用程序打包在一起发布可持久化,也可以直接基于内存不保留数据,适合于做单元测试maven依赖<dependencies><dependency><groupId>org.springframework.boo... 继续阅读 >
202010-13 springBoot加入thymeleaf模板的方式 1.新建springBoot项目在前面有两种方式2.加入thymeleaf模板引擎SpringBoot推荐使用thymeleaf模板引擎语法简单,功能更强大要想引入thymeleaf,只需要在pom,xml文件中加入如下依赖就可以了<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>3.在controller中定义跳转的页面会自动去templates文件夹下去找index.html4.运行,然后访问项目输入http:... 继续阅读 >
202010-13 详解IDEA搭建springBoot方式一(推荐) 1.先在IDEA配置mavenmaven下载和配置可以看https://www.jb51.net/article/197309.htm2.新建maven项目3.在pom.xml加入springBoot依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.9.RELEASE</version></parent><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>... 继续阅读 >
202010-13 SpringBoot 创建容器的实现 spring容器的创建对应SpringApplication中run中调用的createApplicationContext方法。这里创建了一个web容器,接下就进去prepareContext容器准备阶段:privatevoidprepareContext(ConfigurableApplicationContextcontext,ConfigurableEnvironmentenvironment,SpringApplicationRunListenerslisteners,ApplicationArgumentsapplicationArguments,BannerprintedBanner){//为容器设置环境conte... 继续阅读 >
202010-10 springboot maven 项目打包jar 最后名称自定义的教程 maven文件打包,输入:package-Dmaven.test.skip=true进行打包,一般生成的jar文件名称是项目名+版本号这样的如何在pom.xml中加入finalname属性,就可以获得稳定的jar名称<build><finalName>pay</finalName><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><configu... 继续阅读 >
202010-10 详解SpringBoot基于Dubbo和Seata的分布式事务解决方案 1.分布式事务初探一般来说,目前市面上的数据库都支持本地事务,也就是在你的应用程序中,在一个数据库连接下的操作,可以很容易的实现事务的操作。但是目前,基于SOA的思想,大部分项目都采用微服务架构后,就会出现了跨服务间的事务需求,这就称为分布式事务。本文假设你已经了解了事务的运行机制,如果你不了解事务,那么我建议先去看下事务相关的文章,再来阅读本文。1.1什么是分布式事务对于传统的单体应用而言,实现本地事... 继续阅读 >
202010-10 浅谈springboot内置tomcat和外部独立部署tomcat的区别 前两天,我去面了个试,面试官问了我个问题,独立部署的tomcat跟springboot内置的tomcat有什么区别,为什么存在要禁掉springboot的tomcat然后将项目部署到独立的tomcat当中?我就想,不都一个样?独立部署的tomcat可以配置优化?禁AJP,开多线程,开nio?而且springboot内置的tomcat多方便,部署上服务器写个java脚本运行即可。现在考虑下有什么条件能优于内置tomcat的。1.tomcat的优化配置多线程?内置的也可以配置多线程server:to... 继续阅读 >