spring及springboot
文章平均质量分 71
DN金猿
大佬级别的小沙弥
展开
-
springboot+shiro前后端分离过程中跨域问题、sessionId问题、302鉴权失败问题
2、sessionId问题,因前后端分离无法使用cookie,所以修改为登陆校验后返回sessionId给前端,前端拿到sessionId后放在请求头中,后端重写 DefaultWebSessionManager 中的 getSessionId 方法,从请求头中获取对应的sessionId。前端调用后台接口后,发现没有鉴权的请求,直接302错误,并没有对应的返回值,所以下面针对302问题进行解决。此文为我在改造springboot+shiro整合适用前后端分离项目中的记录,如果有错误的地方,还请及时指出。转载 2024-08-17 14:07:10 · 176 阅读 · 0 评论 -
新建的springboot项目启动报错:找不到或无法加载主类
在使用Spring Boot时,我们通常使用Maven或Gradle进行项目的构建和编译。如果在编译过程中出现了错误,可能会导致无法加载主类的问题。在使用Maven时,可以尝试使用。如果使用Gradle,可以使用。命令清理并重新构建项目。命令进行清理和构建。原创 2024-06-24 13:21:33 · 439 阅读 · 0 评论 -
springboot项目启动后自动退出运行
我们在新建SpringBoot项目的时候,在运行的时候,一会就自动关闭了,这个主要是我们在新建的时候没有选择好依赖包,相当于没有内置的Tomcat,我们运行的Main函数其实就是一个普通的Main函数,所以运行完毕了之后就关闭了,遇到这个问题我们应该如何解决?如果是上面的配置,我们需要在后面加上一个-web,具体如下,这个意味着我们引入了Spring Boot的内置Tomcat作为我们的启动容器,记得重新导包,这样我们就能正常启动了。加上之后就启动正常了。转载 2024-06-18 19:25:32 · 2030 阅读 · 0 评论 -
解决: SpringBoot报错 context.config.ConfigFileApplicationListener.supportsSourceType(Ljava/lang/Class;)
具体到我这个项目,是由于springboot中的spring版本和父项目中的spring版本不一致导致,最终排除掉springboot中的spring,或者重新建一个单纯的springboot项目得以解决。首先说明一下,这可能是jar冲突原因,导致该原因可能是因为jar版本不一样。转载 2024-06-18 19:07:33 · 219 阅读 · 0 评论 -
SpringBoot启动类常用注解
默认情况下,Spring会查找一个关联的线程池:要么是一个org.springframework.core.task.TaskExecutor类型的bean,要么是一个类型是 java.util.concurrent.Executor名字是taskExecutor的bean。当你在配置类(@Configuration)上使用@EnableCaching注解时,会触发一个post processor,这会扫描每一个spring bean,查看是否已经存在注解对应的缓存。通常用于标记启动类。原创 2024-04-30 16:20:35 · 1176 阅读 · 0 评论 -
SpringBoot引入第三方jar的Bean的三种方式
这种方式,主要是结合来定义bean,首先是声明一个配置类,而后再配置类中,经过返回bean对象的方法形式来声明bean,通常使用姿式以下@Data@Bean须要说明的一点是类自己也被Spring容器看为一个Bean。转载 2023-09-06 16:53:36 · 1113 阅读 · 0 评论 -
springboot的Interceptor、Filter、Listener及注册
springboot的Interceptor、Filter、Listener及注册。转载 2023-08-12 09:50:32 · 253 阅读 · 0 评论 -
SpringBoot项目在windows系统中运行jar包启动
SpringBoot项目在开发中,方便快捷,有一点原因就是SpringBoot项目可以打jar包运行:把jar包直接扔服务器上,然后运行jar包就能访问项目接口了。下面介绍SpringBoot项目打jar包运行的步骤流程:一、我们所熟悉的是在开发环境下,直接用开发工具来运行那个启动类,然后就能启动这个项目:开发环境下启动项目二、 SpringBoot项目打jar包方法:【1】在cmd界面中,进入项目的本地存储地址cmd命令下进入项目地址【2】运行maven的打包命令,mvn转载 2020-10-19 15:14:31 · 7228 阅读 · 0 评论 -
Java中的微信支付(1):API V3版本签名详解
1. 前言最近在折腾微信支付,证书还是比较烦人的,所以有必要分享一些经验,减少你在开发微信支付时的踩坑。目前微信支付的API已经发展到V3版本,采用了流行的Restful风格。今天来分享微信支付的难点——签名,虽然有很多好用的SDK但是如果你想深入了解微信支付还是需要了解一下的。2. API证书为了保证资金敏感数据的安全性,确保我们业务中的资金往来交易万无一失。目前微信支付第三方签发的权威的CA证书(API证书)中提供的私钥来进行签名。通过商户平台你可以设置并获取API证书。切记转载 2021-12-17 11:38:52 · 2317 阅读 · 0 评论 -
Java中的微信支付(3):API V3微信支付签名验证
1. 前言微信支付V3版本前两篇分别讲了如何对请求做签名和如何获取并刷新微信平台公钥,本篇将继续展开如何对微信支付响应结果的验签。2. 为什么要对响应验签微信支付会在回调的HTTP头部中包括回调报文的签名。商户必须验证响应的签名,保证响应确实来自微信支付服务器,避免中间人攻击。而验证响应签名除了需要微信平台的公钥外还需要从请求头的其它参数。假设以下就是微信支付服务器的响应:HTTP/1.1 200 OKServer: nginxDate: Tue, 02 Apr 2019 12:5转载 2021-12-17 11:47:20 · 4086 阅读 · 0 评论 -
Java中的微信支付(2):API V3 微信平台证书的解析与刷新
1. 前言在Java中的微信支付(1):API V3版本签名详解一文中胖哥讲解了微信支付V3版本API的签名,当我方(你自己的服务器)请求微信支付服务器时需要根据我方的API证书对参数进行加签,微信服务器会根据我方签名验签以确定请求来自我方服务器。那么同样的道理我方的服务器也要对微信支付服务器的响应进行鉴别来确定响应真的来自微信支付服务器,这就是验签。验签使用的是【微信支付平台证书公钥】,不是商户API证书。使用商户API证书是验证不过的。今天就来分享一下如何获得微信平台公钥和动态刷新微信平台公钥。转载 2021-12-17 11:43:38 · 1423 阅读 · 0 评论 -
SpringBoot项目打包成jar后读取文件的大坑,使用ClassPathResource获取classpath下文件失败
我在读取邮件模板的时候,本地测试使用ClassPathResource都可以正常读取,但打包成jar包传到服务器上就无法获取了,报错信息是:class path resource [xxxx] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:xxxx.jar!/BOOT-INF/classes!xxxx,话不多说,先看正确的获取方法:使用PathMatc...转载 2021-09-29 10:28:28 · 7006 阅读 · 1 评论 -
spring boot中使用定时任务配置
首先得创建一个spring boot项目吧,使用idea创建spring boot项目使用步骤如下【千万注意:一定要在启动类添加注解,否则定时任务无效】1.在启动类 添加 开启定时任务 注解@EnableScheduling2.创建定时任务类,使用注解@Component 标注定时任务类,作用是注入为Bean 使用注解@Scheduled 标注在定时任务方法上, 作用是标注这个方法是执行定时任务的业务逻辑关于@Scheduled的使用方法,参见后面备注1@.转载 2021-09-24 09:31:37 · 983 阅读 · 0 评论 -
SpringBoot中@EnableAsync
在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring3.x之后,就已经内置了@Async来完美解决这个问题1. 何为异步调用? 在解释异步调用之前,我们先来看同步调用的定义;同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。 异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行下面的流程。 例如...转载 2021-10-07 14:58:30 · 1129 阅读 · 0 评论 -
解决 xx.jar中没有主清单属性 问题
今天新写的SpringBoot项目打jar包部署的时候遇到一个问题,xxx.jar包中没有主清单属性。如下图所示: 主清单属性是jar包中MANIFEST.MF文件中的一个属性,MANIFEST.MF文件位于jar包的META_INF路径下 打开MANIFEST.MF文件,里面有如下属性:Manifest-Version: 1.0Implementation-Title: com.imoocImplementation-Version: 1.0-SNAPSHOT转载 2021-12-08 09:13:12 · 3473 阅读 · 0 评论 -
Tomcat部署Web项目的3种方式
目录一、将war包丢进webapps 二、配置Server.xml部署Web工程 三、添加xml方式部署Wweb工程 四、注意点 ①将对应位置改为ROOT即可实现目录缺省 ②三种部署方式的优先级别 一、将war包丢进webapps 这是最简单粗暴的方式:将web工程打成war,丢进tomcat/webapps目录即可,tomcat会自动解压。无需修改任何配置文件即可完成部署。 这里我准备了tomcat8.5.43与dubbo控制台的war包来做测试。转载 2021-11-01 17:54:12 · 1951 阅读 · 0 评论 -
SpringData系列 @Query注解及@Modifying注解
@Query注解查询适用于所查询的数据无法通过关键字查询得到结果的查询。这种查询可以摆脱像关键字查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现。索引参数与命名参数 1、索引参数如下所示,索引值从1开始,查询中"?X"个数需要与方法定义的参数个数相一致,并且顺序也要一致。 1 @Query("SELECT p FROM Person p WHERE p.lastName = ?1 AND p.email = ?2")2 List转载 2021-11-01 17:51:50 · 319 阅读 · 0 评论 -
HikariCP连接池
背景自己在写点代码的时候之前pom文件的内容都是从前一个项目中复制的,并没有认真分析一下各种依赖的关系,有时候重复的问题会出现好多次,比如说连接数据库报错,有时候配置没有问题,可能是依赖的jar包的问题,有时候jar包依赖的正确可能是配置的问题。什么是连接池数据库连接池负责分配、管理和释放数据库的连接。数据库连接复用:重复使用现有的数据库长连接,可以避免连接频繁建立、关闭的开销。统一的连接管理:释放空闲时间超过最大空闲时间的数据库连接,避免因为没有释放数据库连接而引起的数据库连接泄漏。原创 2021-10-15 10:32:25 · 1813 阅读 · 0 评论 -
springboot异步线程管理AsyncConfigurer
package com.common.base.config; import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;import org.springframework.context.annotation.Configuration;import org.springframework.scheduling.annotation.AsyncConfigurer;import org.springfra.转载 2021-10-12 14:19:58 · 900 阅读 · 0 评论 -
Spring自带的线程池ThreadPoolTaskExecutor
前言上一篇分享了JDK自带的线程池ThreadPoolExecutor的配置和参数详解,然而我们实际开发中更多的是使用SpringBoot来开发,Spring默认也是自带了一个线程池方便我们开发,它就是ThreadPoolTaskExecutor,接下来我们就来聊聊Spring的线程池吧。Spring默认线程池simpleAsyncTaskExecutorSpring异步线程池的接口类是TaskExecutor,本质还是java.util.concurrent.Executor,没有配置的情况下转载 2021-10-11 17:43:34 · 5320 阅读 · 2 评论 -
一张图搞定OAuth2.0
1、引言本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式非常简单的一件事情,网上一堆神乎其神的讲解,让我不得不写一篇文章来终结它们。一项新的技术,无非就是了解它是什么,为什么,怎么用。至于为什么,本篇文章不做重点探讨,网上会有各种文章举各种什么丢钥匙、发船票的例子供你去阅读,个人认为还是有些哗众取宠,没有聊到本质。那我们就重点聊聊OAuth2.0是什么,怎么用。但首先在读本文之前,你要先对OAuth2.0有一定的了解,建议先读一下阮一峰的oauth2.0文章,直接看“授转载 2021-10-07 15:12:46 · 132 阅读 · 0 评论 -
Spring Boot Quartz 分布式集群任务调度实现
Spring Boot Quartz主要内容Spring Scheduler 框架 Quartz 框架,功能强大,配置灵活 Quartz 集群 mysql 持久化定时任务脚本(tables_mysql.sql)介绍在工程中时常会遇到一些需求,例如定时刷新一下配置、隔一段时间检查下网络状态并发送邮件等诸如此类的定时任务。定时任务本质就是一个异步的线程,线程可以查询或修改并执行一系列的操作。由于本质是线程,在 Java 中可以自行编写一个线程池对定时任务进行控制,但这样效率太低了,且功能有转载 2021-10-07 15:06:59 · 507 阅读 · 0 评论