- 博客(89)
- 资源 (1)
- 收藏
- 关注
原创 nacos配置监听回调执行业务逻辑
两种方式实现加入配置pom <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>1.实现Listener接口package com.homepage.data.display.c
2021-11-18 14:58:44
2665
1
原创 SpringBoot 在过滤器中处理报错信息并返回 Json 数据
public class CustomKeepAliveFilter implements Filterpublic void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequ...
2021-11-12 18:38:04
4032
原创 spring 定时任务使用PeriodicTrigger周期时分秒执行
spring trigger接口实现类两个:CronTrigger传入常见的cron表达式;若周期时分秒执行,且数值大于进制,比如每71秒或65分或27小时执行,就得使用PeriodicTrigger去实现了若CronTrigger传入71秒,每71秒执行一次,则最后执行结果就是每分钟执行一次,如下图,有些甚至会报错 PeriodicTrigger periodicTrigger = new PeriodicTrigger(26, TimeUnit.HOURS);//.
2021-10-26 14:05:04
2291
原创 springboot mybatis_plus 集成日志配置文件
springboot 默认日志logbackspringboot mybatis_plus集成日志配置文件<?xml version="1.0" encoding="UTF-8"?><!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --><!-- scan:当此属性设置为true时,配置文件如果发生改变,将会被重新.
2021-10-11 15:12:01
1052
原创 ThreadPoolTaskScheduler spring定时任务框架,线程池配置
参数配置,只能配置核心线程池参数大小@Bean(name = "threadPoolTaskScheduler") public ThreadPoolTaskScheduler taskScheduler() { // Spring 默认配置是核心线程数大小为1,最大线程容量大小不受限制,队列容量也不受限制。 ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler(); //...
2021-09-22 19:59:12
5590
原创 springboot拦截器,过滤器完成请求参数的获取
1.自定义拦截器package com.impl.modelserver.common.config.interceptor;import com.alibaba.fastjson.JSON;import com.impl.modelserver.po.CheckNamespaceLegalParam;import com.impl.modelserver.service.IModelService;import java.util.Map;import javax.servlet.htt
2021-03-04 11:06:05
4190
3
转载 spring boot实现动态增删启停定时任务
spring boot实现动态增删启停定时任务在spring boot项目中,可以通过@EnableScheduling注解和@Scheduled注解实现定时任务,也可以通过SchedulingConfigurer接口来实现定时任务。但是这两种方式不能动态添加、删除、启动、停止任务。要实现动态增删启停定时任务功能,比较广泛的做法是集成Quartz框架。但是本人的开发原则是:在满足项目需求的情况下,尽量少的依赖其它框架,避免项目过于臃肿和复杂。查看spring-context这个jar包中org.spri
2021-02-09 11:33:49
167
转载 Spring AOP使用详解
其实, 接触了这么久的 AOP, 我感觉, AOP 给人难以理解的一个关键点是它的概念比较多, 而且坑爹的是, 这些概念经过了中文翻译后, 变得面目全非, 相同的一个术语,在不同的翻译下, 含义总有着各种莫名其妙的差别. 鉴于此, 我在本章的开头, 着重为为大家介绍一个 Spring AOP 的各项术语的基本含义。为了术语传达的准确性, 我在接下来的叙述中, 能使用英文术语的地方, 尽量使用英文。什么是 AOPAOP(Aspect-Oriented Programming), 即面向切面编程..
2021-02-05 11:39:52
334
原创 spring 文件复制工具类
文件操作在使用各种 Resource 接口的实现类加载文件资源后,经常需要对文件资源进行读取、拷贝、转存等不同类型的操作。您可以通过 Resource 接口所提供了方法完成这些功能,不过在大多数情况下,通过 Spring 为 Resource 所配备的工具类完成文件资源的操作将更加方便。文件内容拷贝第一个我们要认识的是 FileCopyUtils,它提供了许多一步式的静态操作方法,能够将文件内容拷贝到一个目标 byte[]、String 甚至一个输出流或输出文件中。下面的实例展示了 FileCo
2021-02-05 10:02:32
919
原创 spring优雅的完成策略模式
工作中遇到根据参数不同创建不同的对象执行不同的逻辑,由于类型较多避免太多的if,后期维护扩展造成困难,记录下解决方法springboot启动的时候资源已经加载完毕,类信息放在map中,如下实现注入@Autowired private Set<IEngineeringService> iEngineeringServiceSet;由于实现IEngineeringService接口有三个,所以set长度为3private Map<String, IEngineer.
2021-01-29 14:48:25
261
翻译 mybaits执行流程
前言 概要 获取Mapper接口(getMapper) Mapper接口和映射文件是何时关联的 sql执行流程分析 寻找sql 执行sql语句 参数映射 自定义typeHandler 结果集映射 自定义typeHandler结果集 工作流程图 总结 前言MyBatis可能很多人都一直在用,但是MyBatis的SQL执行流程可能并不是所有人都清楚了,..
2021-01-28 13:43:58
203
翻译 Spring 事务传播行为的理解
摘要: 原创出处 sf.gg/a/1190000013341344 「handaqiang」欢迎转载,保留摘要,谢谢! 前言 基础概念 1. 什么是事务传播行为? 2. Spring 中七种事务传播行为 代码验证 1.PROPAGATION_REQUIRED 2.PROPAGATION_REQUIRES_NEW 3.PROPAGATION_NESTED 4. REQUIRED,REQUIRES
2020-09-24 09:25:04
177
翻译 Spring Boot 中注册过滤器的三种方式
1.@WebFilter通过 @WebFilter 注解来标记一个过滤器,这种方式相信大家很容易想到。这是将 Servlet 中的那一套东西直接拿到 Spring Boot 上用。具体做法就是通过 @WebFilter 注解来标记一个 Filter,如下:@WebFilter(urlPatterns="/*")publicclassMyFilterimplementsFilter{@OverridepublicvoiddoFilter(ServletR...
2020-06-19 09:10:53
2557
转载 SpringBoot定时任务(schedule、quartz)
Scheduled只适合处理简单的计划任务,不能处理分布式计划任务。优势:是spring框架提供的计划任务,开发简单,执行效率比较高。且在计划任务数量太多的时候,可能出现阻塞,崩溃,延迟启动等问题。 Scheduled定时任务是spring3.0版本之后自带的一个定时任务。其所属Spring的资源包为:spring-context-support。所以需要使用Scheduled定时任务机制时,需要在工程中依赖对应资源,具体如下:<!-- scheduled所属资源为spr..
2020-06-19 09:06:57
1069
转载 springboot+mybatis数据源动态切换与加载
一.普及知识一个数据源,也就代表一个数据库,源=数据的源头 数据源实例:一个数据库连接,就代表一个数据源实例对象; 多数据源实例:多个数据库连接对象;二.寻找解决办法我们的项目使用SpringBoot+Mybatis开发的领域层,默认只连接一个数据库; 网上查询大部分的做法都是多数据源之间动态切换,也就是说在配置文件中提前配置好几个数据库连接信息,自己获取配置文件中的这些配置,然后在springBoot启动的使用想办法自动创建这 几个数据源实例; 在后续需要切换数据库的时候,只需要指定对应
2020-06-17 09:47:26
922
转载 SpringBoot 参数校验的方法
SpringBoot 参数校验的方法Introduction有参数传递的地方都少不了参数校验。在web开发中,前端的参数校验是为了用户体验,后端的参数校验是为了安全。试想一下,如果在controller层中没有经过任何校验的参数通过service层、dao层一路来到了数据库就可能导致严重的后果,最好的结果是查不出数据,严重一点就是报错,如果这些没有被校验的参数中包含了恶意代码,那就可能导致更严重的后果。这里我们主要介绍在springboot中的几种参数校验方式。常用的用于参数校验的注解如下:
2020-06-05 14:17:13
863
原创 Mybatis的自动映射autoMappingBehavior与mapUnderscoreToCamelCase
autoMappingBehavior在Mybatis的配置文件中添加settings属性的autoMappingBehavior<settings><setting name="autoMappingBehavior" value="NONE"/></settings>autoMappingBehavior有三个属性(默认是PARTIAL)NONE:取消自动映射 PARTIAL:只会自动映射,没有定义嵌套结果集映射的结果集 FULL:会
2020-05-29 12:42:51
6091
翻译 实际工作中用的最多的 git 命令
最近在工作中频繁用到git版本管理,期间也遇到了很多的问题,平时也会使用,但是,在没有遇到什么大的问题的时候,还是用的不是特别的熟练,最近,自己在玩的时候,发现了很多问题,同时,也用git解决了这些问题,发现git真的是个好东西,用的熟练了,真的棒!!!所以,今天就花点时间总结一下最最常用的一些git命令,不管什么时候,这些命令都是需要熟练的使用的,这样才能保证不出错,那就开始吧!!!创建仓库/初始化/提交操作1、git init初始化仓库操作,这样才能用git进行代码管理。2、gi
2020-05-29 09:07:49
264
转载 Spring Boot 2.3 新特性优雅停机详解
什么是优雅停机先来一段简单的代码,如下:@RestControllerpublic class DemoController { @GetMapping("/demo") public String demo() throws InterruptedException { // 模拟业务耗时处理流程 Thread.sleep(20 * 1000L); return "hello"; }}复制代码当我们流量请求到此接口执行业务逻辑的时候,若服务端此时执行关机 (ki
2020-05-28 09:17:45
1156
转载 ElasticSearch实战篇 - Spring Boot 整合 ElasticSearch
当前Spring Boot很是流行,包括我自己,也是在用Spring Boot集成其他框架进行项目开发,所以这一节,我们一起来探讨Spring Boot整合ElasticSearch的问题。本文主要讲以下内容:第一部分,通读文档第二部分,Spring Boot整合ElasticSearch第三部分,基本的CRUD操作第四部分,搜索第五部分,例子还没有学过Elasticsearch的朋友,可以先学这个系列的第一节(这个系列共三节),如果你有不明白或者不正确的地方,可以给我评论、留言
2020-05-27 10:04:49
344
翻译 SpringSecurity 整合 JWT
前言前后端分离项目中,如果直接把 API 接口对外开放,我们知道这样风险是很大的,所以在上一篇中我们引入了 Spring Security ,但是我们在登陆后缺少了请求凭证部分。什么是JWT?JWT是 Json Web Token 的缩写。它是基于 RFC 7519 标准定义的一种可以安全传输的 小巧 和 自包含 的JSON对象。由于数据是使用数字签名的,所以是可信任的和安全的。JWT可以使用HMAC算法对secret进行加密或者使用RSA的公钥私钥对来进行签名。JWT的工作流程1、用户
2020-05-25 13:58:48
1176
翻译 项目集成Spring Security
Spring Security 一句话概述:一组 filter 过滤器链组成的权限认证。一、加入依赖环境:项目采用 Spring Initializr 快速构建 Spring Boot ,版本交由spring-boot-starter-parent管理。<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter...
2020-05-25 13:52:09
384
原创 Google chrome 谷歌浏览器安装ElasticSearch head插件
ElasticSearch head是一款 对elasticsearch集群管理工具、数据可视化、增删改查工具, Elasticsearch 语句可视化,使用起来也非常方便。下面提供一下安装方式。在github上开源了这个插件 ,点击下载链接至github上下载插件我们可以看到,在其主页也提供了一些安装方式,使用谷歌插件安装还是比较方便的,下载es-head-master.zip路径指向elasticsearch-head-master\cr...
2020-05-21 15:39:39
3088
原创 基于SpringBoot的开源应用统计
基于SpringBoot的开源应用统计https://springboot.io/t/topic/726/3
2020-05-17 14:39:09
286
翻译 Spring Boot之程序性能监控
Spring Boot特别适合团队构建各种可快速迭代的微服务,同时为了减少程序本身监控系统的开发量,Spring Boot提供了actuator模块,可以很方便的对你的Spring Boot程序做监控。1. actuator接口说明Spring Boot应用中加入监控很简单,只需要在pom.xml文件中加入以下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifa.
2020-05-16 17:25:22
391
翻译 如何画出优秀的架构图
导读:技术传播的价值,不仅仅体现在通过商业化产品和开源项目来缩短我们构建应用的路径,加速业务的上线速率,也体现在优秀工程师在工作效率提升、产品性能优化和用户体验改善等经验方面的分享,以提高我们的专业能力。本文作者阿里巴巴技术专家三画,分享了自己和团队在画好架构图方面的理念和经验,首发于阿里内部技术分享平台,梓敬、鹏升和余乐对此文亦有贡献。当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况: 对着画布无从下手、删了又来? 用一张图描述我的系统,并且让产品、运营、开..
2020-05-16 17:15:05
198
原创 cmd中mvn命令Perhaps you are running on a JRE rather than a JDK?
cmd中mvn命令,出现No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?在cmd里执行mvn命令,出错查看mvn -v发现mvn运行在jre上,更改高级设置。我的电脑--》属性--》高级系统设置--》环境变量更改完之后,再次查...
2020-04-28 13:43:22
1251
翻译 Spring Boot+Vue|axios异步请求数据的12种操作
Spring Boot + Vue 前后端分离最核心的操作就是通过异步请求完成数据同步,这其中又可以分为很多种不同的情况,比如是 GET 请求还是 POST 请求?参数是普通变量还是 JSON?基于 RESTful 架构如何操作等等,今天楠哥就把这些不同的请求方式做了一个汇总,一次性写清楚,以后需要用的时候直接来查这篇文章即可。前后端分离异步请求共包含以下 12 种情况:1、GET 请求 ...
2020-04-17 13:39:48
2711
原创 Windows IntelliJ IDEA 快捷键终极大全,速度收藏!
自动代码 查询快捷键 其他快捷键 调试快捷键 重构 十大Intellij IDEA快捷键 1 智能提示 2 重构 3 代码生成 4 编辑 5 查找打开 6 其他辅助 太难割舍,前三名并列吧! 自动代码常用的有fori/sout...
2020-03-16 09:10:40
233
原创 mybatis-plus返回map自动转驼峰配置
mybatis-plus返回map自动转驼峰配置object-wrapper-factory不生效问题解决;配置map-underscore-to-camel-case: true不生效问题解决很多时候我们工作中查询很多字段的时候一般是返回一个VO来接收,这个时候我们只要在yml中配置了map-underscore-to-camel-case: true就会自动将查询数据...
2020-03-03 14:24:12
10950
11
翻译 EasyCode实现数据库到Swagger全自动化
简介EasyCode是基于IntelliJ IDEA开发的代码生成插件,通过自定义生成模板可以完成定制化的 Mapper Service Controller 生成,结合数据库 Comment还可以实现从数据库到 Swagger 的一键配置,非常的强大与方便,项目地址:EasyCode--码云这里推荐大家使用安装和一般的Idea插件安装方式一样,点击 File -> Setti...
2020-02-29 22:27:56
2071
2
原创 mybatis传参数多个又不想用@Param
根据官方文档useActualParamName 允许使用方法签名中的名称作为语句参数名称。 为了使用该特性,你的项目必须采用 Java 8 编译,并且加上-parameters选项。(新增于 3.4.1) true | false true <setting name="useActualParamName" value="true"></...
2020-01-05 16:18:25
928
原创 Mybatis方法入参处理
1,在单个入参的情况下,mybatis不做任何处理,#{参数名} 即可,甚至连参数名都可以不需要,因为只有一个参数,或者使用 Mybatis的内置参数 _parameter。2,多个入参: 接口方法定义:public Employee getEmpByIdAndName(Integer id,String name); 取值:#{id},#{name} m...
2020-01-05 15:57:28
2469
原创 mybatis -oracle添加数据id不增
不支持自动生成类型的数据库或可能不支持自动生成主键的 JDBC 驱动,比如oracle利用序列对于下面的方式如果是批量插入那么得到的当前序列号就是最后插入的数据的下一个序列号,会出现第一条数据以后id值出现问题...
2020-01-05 11:00:32
470
原创 vue+element-ui)动态设置tabel列的显示与隐藏
条件指定列的隐藏于显示,v-show没有实现,用v-if实现了,虽然vue官网提示:一般来说,v-if有更高的切换开销,而v-show有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用v-show较好;如果在运行时条件很少改变,则使用v-if较好。<el-table-column type="index" label="序号" width="80" align="...
2019-12-18 18:00:34
4066
翻译 什么是RESTful API
要弄清楚什么是RESTful API,首先要弄清楚什么是REST。REST -- REpresentational State Transfer,英语的直译就是“表现层状态转移”。如果看这个概念,估计没几个人能明白是什么意思。那下面就让我来用一句人话解释一下什么是RESTful:URL定位资源,用HTTP动词(GET,POST,PUT,DELETE)描述操作。Resource:资源,即数据。R...
2019-11-24 15:53:28
129
原创 设计模式7大原则
1.设计模式常用7大原则1)单一职责原则降低类的复杂度,一个类只负责一项职责,提高类的可读性,可维护性,降低类变更引起的风险,通常情况下,我们应当遵守单一职责原则,只有类逻辑足够简单,可以违反单一职责原则,若类的方法数量比较少,可以在方法级别保持单一原则。2)接口隔离原则客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。3)依赖倒转原则(Depend...
2019-11-23 17:58:40
260
原创 mybatis mapper引入方式
mybatis mapper引入方式一共四种:<!-- Using classpath relative resources --><mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <mapper resource="org/mybatis/builder...
2019-11-22 11:36:18
680
springsource-tool-suite-3.9.11.RELEASE-e4.12.0-updatesite.zip
2019-12-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人