![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 72
长庚~Richarlie
programming
展开
-
SpringBoot+webSocket+Vue设置后台向前端推送消息
SpringBoot+webSocket+Vue设置后台向前端推送消息转载 2022-10-11 15:58:05 · 2211 阅读 · 0 评论 -
@JsonFormat失效解决(时间转换与数据库不一致)
@JsonFormat失效解决(时间转换与数据库不一致)转载 2022-07-15 13:49:19 · 8274 阅读 · 1 评论 -
Spring中EmptyResultDataAccessException异常产生的原理及处理方法
Spring中使用JdbcTemplate的queryForObject方法,当查不到数据时会抛出如下异常:org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0org.springframework.dao.support.DataAccessUtils.(DataAccessUtils.java:71)org.springframework.jdbc.co转载 2022-01-03 14:01:24 · 652 阅读 · 0 评论 -
使用Timer实现异步调用方法
Timer是一种定时器工具,用来在一个后台线程计划执行指定任务。它可以计划执行一个任务一次或反复多次。Timer.schedule方法:Timer.schedule(new TimerTask() {public void run(){}},0,1000)第一个参数:是 TimerTask 类,在包:import java.util.TimerTask .使用者要继承该类,并实现 public void run() 方法,因为 TimerTask 类实现了 Runnable 接口。也就是说run()中的转载 2021-11-18 13:15:15 · 863 阅读 · 0 评论 -
Spring boot 2.1版本、2.3及以上版本使用actuator实现优雅关闭程序
优雅停机主要应用在版本更新的时候,为了等待正在工作的线程全部执行完毕,然后再停止2.3及以上版本1.maven引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency>2.修改配置文件management: endp原创 2021-11-09 14:24:36 · 2405 阅读 · 0 评论 -
springboot+mybatis+druid+atomikos 处理分布式事务
前言:在上一篇文章《springboot+mybatis+druid 多数据源整合》中我们进行了多数据源的集成,根据不同的mapper文件可以操作不同的数据源,但是这样也就带来了一个问题,怎么保证数据的一致性?通常事务回滚机制是回滚指定数据源的数据,如果在service层调用不同的mapper操作不同的数据源,出现异常的情况下有一个数据源肯定无...转载 2021-11-03 13:32:16 · 375 阅读 · 0 评论 -
spring.profiles.active和spring.profiles.include的使用与区别
spring.profiles.active和spring.profiles.include的区别与使用 业务场景优化方式spring.profiles.active属性启动时指定: spring.profiles.include属性配置方法:配置的位置和区别: 用示例来使用和区分测试一:测试二:测试三: 业务场景 一套程序可能会被部署到不同的环境。开发、测试、生产环境有不同的配置信息,包括jdbc地址、ip、端口等。如果在同一个配置文件中,每次部署去改配置,会非常...转载 2021-11-03 11:39:25 · 981 阅读 · 0 评论 -
10 分钟实现 Spring Boot 发送邮件功能
什么是SMTP? SMTP全称为Simple Mail Transfer Protocol(简单邮件传输协议),它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP认证要求必须提供账号和密码才能登陆服务器,其设计目的在于避免用户受到垃圾邮件的侵扰。 什么是IMAP? IMAP全称为Internet Message Access Protocol(互联网邮件访问协议),IMAP允许从邮件服务器上获取邮件的信息、下载邮件等。IMAP与...转载 2021-11-01 15:34:58 · 1680 阅读 · 0 评论 -
Springboot集成SpringSecurity 附代码
之前做过公司的SSO接入,也网上找了很多博客,结合自己的理解 梳理了一些,文章有点长,希望可以有耐心的看下去。 一、Spring security 是什么? Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。 它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion of Control ,DI:Dependency Inject...转载 2021-10-26 16:13:32 · 115 阅读 · 0 评论 -
SpringBoot+JSON+AJAX+ECharts+Fiddler实现前后端分离开发可视化(进阶篇)
教程目录0x00 教程内容0x01 新建SpringBoot项目1. 新建maven工程2. 编写代码3. 代码讲解0x02 JSON与AJAX结合1. 编写html界面2. 编写访问界面方法3. 代码讲解0x03 意外惊喜1. 是彩蛋啊2. 是又一个彩蛋啊0xFF 总结0x00 教程内容新建SpringBoot项目JSON与AJAX结合意外惊喜0x01 新建SpringBoot项目1. 新建ma转载 2021-09-01 09:14:20 · 427 阅读 · 0 评论 -
SpringBoot+Thymeleaf+ECharts实现大数据可视化(基础篇)
教程目录0x00 教程内容0x01 新建SpringBoot项目1. 新建maven工程2. 编写HelloWorld程序代码0x02 引入ECharts资源1. 获取JQuery与ECharts资源2. 新建ECharts模版html文件3. 添加后台java代码4. ECharts模版样式预览0x03 SpringBoot整合Thymeleaf1. 新建myECharts方法2. 引入Thymeleaf3. ECharts转载 2021-09-01 09:08:55 · 1401 阅读 · 0 评论 -
从零实现 Spring Boot 2.0 整合 weixin-java-mp(weixin-java-tools) 获取 openId,用于微信授权
**步骤:**一、*内网穿透申请二级域名(有服务器和域名者可略过)*二、*申请微信公众平台测试号*(有已*认证的*微信服务号者可略过)**三、搭建 Spring Boot 2.0 项目实现获取openId一、内网穿透:因为要直接用内网本机开发调试,微信网页授权在回调时要访问本机,所以直接做个内网穿透,可以直接在外网访问到本机,做法如下:1、登录 https://natapp.cn/ (我用的natapp.cn,你可以用其他类似的,个人感觉这个不错)2、购买隧道:购买前需要认证一下,不要用转载 2021-05-16 15:46:46 · 1856 阅读 · 1 评论 -
SpringBoot java配置类@Configuration 的两种写法
首先在Springboot项目中,建一个java类,使用注解@Configuration ,则这个类是SpringBoot bean的创建的配置文件类,,这种配置文件类有两种写法 1.使用包扫描 ,创建bean2. 使用函数创建bean1.通过包扫描,将包下所有注解类,注入到spring容器中import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation转载 2021-05-05 08:46:04 · 570 阅读 · 0 评论 -
springmvc或者springboot 中实现跨域的5种方式
一、为什么会出现跨域问题 出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协...转载 2021-04-30 16:00:16 · 110 阅读 · 2 评论 -
@Transactional(rollbackFor=Exception.class)的作用
在项目中,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。这种设置是因为Spring的默认回滚RuntimeException,如果想要回滚Exception时,要设置@Transactional(rollbackFor = Exception.class),而且Exception还要抛出。...转载 2021-04-09 15:30:53 · 830 阅读 · 0 评论 -
spring事务传递机制原理
首先,我们通过org.springframework.transaction.annotation.Propagation来了解一下spring事务的传播定义: 0、REQUIRED(默认): Support a current transaction, create a new one if none exists. 支持当前事务,如果没有则创建一个新的 1、SUPPORTS Support a current transaction, execute non-transact转载 2021-04-09 15:13:02 · 813 阅读 · 0 评论 -
C# winform界面上传附件到服务器(springboot)
桌面前端参考界面浏览按钮参考代码:private void btnBrower_Click(object sender, EventArgs e) { //创建文件弹出选择窗口(包括文件名)对象 OpenFileDialog ofd = new OpenFileDialog(); //判断选择的路径 if (ofd.ShowDialog() == DialogResult.OK)原创 2020-12-10 14:48:59 · 1607 阅读 · 0 评论 -
手写SpringIOC注解版本
每特提供的范本(主要代码)/** * 手写Spring专题 注解版本注入bean * * @author 作者:余胜军 * */@SuppressWarnings({ "rawtypes", "unchecked" })public class ClassPathXmlApplicationContext { // 扫包范围 private String packageName; ConcurrentHashMap<String, Object> initBean = n原创 2020-10-24 13:06:21 · 108 阅读 · 0 评论 -
SpringBoot +自定义dao框架 自定义注解管理多数据源与事务
场景公司有一个业务需要控制db0和db1的两个数据源的表的事务,每次都要自己多个开启,比较麻烦,因为公司是自定义框架所以模拟springjdbc的DataSourceTransactionManager多数据源控制 和@Transactional注解模拟写了一个多数据源管理事务的注解@LdTransactional解决方案查看DataSourceTransactionManager源码得知,实际是多个数据源合并成一个同时我们公司的事务的开启,提交,回滚,已经保障了线程安全,所以我才用的思路1.建立转载 2020-10-14 10:12:11 · 424 阅读 · 0 评论 -
SpringBoot 使用Class.forName方法返回java.lang.ClassNotFoundException
使用全名称!!!参考:https://segmentfault.com/q/1010000014571433https://blog.csdn.net/weixin_33989780/article/details/92033918原创 2020-10-12 15:28:32 · 1023 阅读 · 1 评论 -
AOP(execution表达式)
[一知半解,就是给自己挖坑] 作为AOP的最后一节内容,我们来简单总结一下切面表达式上见的书写方法。下面的那内容有参考其他博文,在此先对开源博客的各位大神表示感谢! ------------------------------------------------------------------------------------------------------------------------------------------------------...转载 2020-10-07 14:39:34 · 3268 阅读 · 0 评论 -
SpringCloud Stream操作消息队列
概述SpringCloud Stream是为微服务提供消息驱动能力的组件,使用就可以操作消息队列。应用程序通过input和output与stream的binder通信,而binder与消息中间件(MQ)通信。使用stream是对消息中间件的进一步封装,无视不同中间件的API,做到统一封装,可以做到代码层面的无感知,甚至动态切换中间件,不过只目前只支持RabbitMQ和kafka。集成pom引入依赖,我使用的是...转载 2020-08-10 14:45:15 · 958 阅读 · 0 评论 -
关于@NotNull 和 @Nullable
阅读spring源码发现里面用到两个注解@NotNull 和 @Nullable,现在做一个简单的分析参考文档:避免Java应用中NullPointerException的技巧和最佳实践安卓中的@Nullable和NotNull 注释在写程序的时候你可以定义是否可为空指针。通过使用像@NotNull和@Nullable之类的...转载 2020-07-27 07:34:26 · 854 阅读 · 0 评论 -
推荐三个 Vue 后台管理模版,配合 Spring Boot 使用真香!
最近因为因为项目的原因,一直在寻找一款合适的前端模版,之前的 Vue 前端页面都是自己写的,写多了就烦了,因为功能都差不多,写来写去就没意思了。所以在新项目中想看看市面上的 Vue 后台管理模版,找个现成的,改一改基本就 OK 了,团队也省事一些。老实说,Vue 的生态还是相当丰富的,经典的、新生的后台管理框架都有,我这里和大家分享我们这次重点比较的三个。vue-element-adminGitHub 地址:https://github.com/PanJiaChen/vue-element-adm转载 2020-07-24 10:55:11 · 394 阅读 · 0 评论 -
idea 导入spring 源码 踩坑记总结整理
一、spring源码下载spring-framework下载地址:spring-framework github地址 二、idea 导入源码工程 三、解决 cglib和objenesis的编译错误解决问题过程: (《Spring 源码深度解析》中介绍的解决过程和下面的有一点不同,不过最终都是导入jar包spring-objenesis-repack 和 spring-cglib-...转载 2020-07-09 17:30:00 · 2637 阅读 · 0 评论 -
spring源码构建时缺失spring-cglib-repack和spring-objenesis-repack的正确处理姿势
今天开始阅读spring源码,当用idea构建了spring源码后,发现缺失spring-cglib-repack和spring-objenesis-repack这两个依赖。在项目的build.gradle里面我找到了下面的代码片段,由于对gradle不太熟,大概只能猜测里面的意思,将cglib和objenesis里的代码提取出来重新打包,并且把包路径换成了spring的。在网上百度过这个问题,发现大家都是说自行下spring源码,再去自己打包。但我觉得spring不会这么蠢,果然我找到了下面的gr.转载 2020-07-09 17:00:44 · 342 阅读 · 0 评论 -
gradle安装及idea导入spring5.0x的源码
idea导入spring5.0x的源码1、下载gradle地址一:gradle官网: https://gradle.org/releases/地址二:https://services.gradle.org/distributions/src:源码;bin:配置; all:源码和配置根据需要下载对应的版本1.1、安装配置gradle解压gradle配置环境变量GRADLE_HOMED:\gradle-4.9path添加:%GRADLE_HOME%\bin测试是否安装.转载 2020-07-09 14:44:03 · 902 阅读 · 0 评论 -
深入理解Spring Boot数据源与连接池原理
【本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究。若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!】一:开始在使用Spring Boot数据源之前,我们一般会导入相关依赖。其中数据源核心依赖就是spring‐boot‐starter‐jdbc如下<dependency> <groupId>org.springframework.boot</groupId> &nbs...转载 2020-07-07 14:15:43 · 1803 阅读 · 0 评论 -
Spring事务管理(二)分布式事务管理之JTA与链式事务
什么是分布式事务跨库的事务就属于分布式事务,比如对两个库的不同表同时修改和同时rollback等。上一节中,我们只是演示了单个库(数据源)的事务处理。这一节主要讲如何处理多个数据源的事务。为什么多数据源下不能使用普通事务来处理呢?我想很多人都有这个问题,打个比方,分库分表后有个数据库A和数据库B,A中有抢票记录,B中有票数记录。当我们完成抢票功能,需要在B减少票数的同时在A中增加记录。但是如果有下面的代码发生:@Transactionalpublic void multiDBTX(){ B.red转载 2020-07-06 14:53:25 · 503 阅读 · 0 评论 -
springboot 多模块项目添加一新模块
选择Maven Module,填写模块名若空白,catalog目录可选择internal更改包名完成后父pom下的会自动添加新模块手工添加新模块的dependency即可(手动添加模块类似)原创 2020-06-08 17:11:20 · 2114 阅读 · 0 评论 -
SpringMVC自定义拦截器拦截请求后返回中文时乱码
错误的写法 PrintWriter writer = response.getWriter();#注意顺序 //设置编码格式 response.setCharacterEncoding("UTF-8"); //这句话是解决乱码的 response.setHeader("Content-Type", "text/html;charset=UTF-8");正确的写法 //设置编码格式 response.setCha转载 2020-06-02 11:41:23 · 717 阅读 · 1 评论 -
SpringBoot启动quartz定时任务创建失败
Caused by: org.quartz.ObjectAlreadyExistsException: Unable to store Job : 'DEFAULT.TASK_1', because one already exists with this identification. at org.quartz.impl.jdbcjobstore.JobStoreSupport.storeJob(JobStoreSupport.java:1113) ~[quartz-2.3.0.jar:na] at转载 2020-06-01 14:56:32 · 2395 阅读 · 0 评论 -
Spring Boot项目中使用 TrueLicense 生成和验证License(服务器许可)
一、简介License,即版权许可证,一般用于收费软件给付费用户提供的访问许可证明。根据应用部署位置的不同,一般可以分为以下两种情况讨论:应用部署在开发者自己的云服务器上。这种情况下用户通过账号登录的形式远程访问,因此只需要在账号登录的时候校验目标账号的有效期、访问权限等信息即可。应用部署在客户的内网环境。因为这种情况开发者无法控制客户的网络环境,也不能保证应用所在服务器可以访问外网,因此通常的做法是使用服务器许可文件,在应用启动的时候加载证书,然后在登录或者其他关键操作的地方校验证书的有效性。注:转载 2020-05-28 14:53:29 · 2590 阅读 · 23 评论 -
web项目中填写sql信息自动动态生成报表功能(springboot)
背景:需求就是设计一个自定义报表功能,当需要新报表时,能够快速的构建。经过初步的构思,有至少三种方式可以实现:构建demo代码,一个报表对应编写一套代码,不过可以将重复代码提取,尽可能的缩减代码,每套代码只保留个性化功能点;一键生成代码,设计一套代码生成程序,以后需要报表时,一键生成配套代码,然后将代码拷贝到对应程序即可;报表维护页面,添加报表数据源等基本信息,保存后自动在报表模块生成报表链接及对应数据。因为当前项目报表预期会比较简单,能展示,能搜索,能导出即可,再一个希望后期能比较原创 2020-05-28 09:15:34 · 2608 阅读 · 4 评论 -
SpringBoot建立数据库连接JdbcTemplate和Mybatis两种方式
Spring Boot有两种方法与数据库建立连接,一种是使用JdbcTemplate,另一种集成Mybatis,下面分别为大家介绍一下如何集成和使用这两种方式。1. 使用JdbcTemplate<dependency> <groupId>mysql</groupId> <artifactId>mysql-connecto...转载 2020-05-25 17:18:49 · 947 阅读 · 0 评论 -
SpringBoot与缓存使用及原理(下)
这次的博客文章是基于上一篇博客 SpringBoot与缓存使用及原理(上) 一 环境准备pom.xml文件中导入spring-boot-starter-cache,我这里是使用了redis做为缓存<dependencies> <dependency> <group...转载 2020-05-22 16:49:09 · 153 阅读 · 0 评论 -
SpringBoot与缓存使用及原理(上)
下面我就开始介绍springboot中的缓存:首先了解下JSR107、Spring缓存抽象等等概念。一 JSR107(下面会有具体Springboot代码演示)Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry 和 Expiry。1 CachingProvider定义了创建、配置、获取、管理和控制多个CacheManager。一个应用...转载 2020-05-22 16:47:03 · 228 阅读 · 0 评论 -
21.Shiro在springboot与vue前后端分离项目里的session管理
1.前言当决定前端与后端代码分开部署时,发现shiro自带的session不起作用了。然后通过对请求head的分析,然后在网上查找一部分解决方案。最终就是,登录成功之后,前端接收到后端传回来的sessionId,存入cookie当中。之后,前端向后端发送请求时,请求Head中都会带上这个sessionid。后端代码通过对这个sessionid的解析,拿到正确的session。2.代码改造(1)后端代码改造添加CustomSessionManager.java/** * 类的详细说明 * *转载 2020-05-21 14:03:35 · 875 阅读 · 2 评论 -
springboot 通过@Value读取自定义属性文件变量获取结果为null
1.对象必须使用@Autowired注入,才能正常使用@Value注解,(而不是new 的对象)(也即要求使用@value 的类中必须被@Service 或Component注解)2.注解属性不能为静态3.需添加@PropertySource(value= {“classpath:myresource.properties”})参考:https://blog.csdn.net/w418...原创 2020-05-06 14:23:14 · 908 阅读 · 0 评论 -
精选13款Spring Boot 优质GitHub开源项目!
Spring Boot 算是目前 Java 领域最火的技术栈了,也是Java开发人员不得不掌握的技术,今天给大家整理了13个优质 Spring Boot 开源项目给大家参考,希望能够帮助到正在学习 Spring Boot 的小伙伴!小伙伴简历中不知道写什么项目的或者项目没有亮点的,我只能帮你们到这了!下边的项目排名不分先后!一、mallstar 数 12.7k,项目地址:https://g...转载 2020-05-01 11:05:59 · 739 阅读 · 0 评论