自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 项目中使用@ConditionalOnBean注解带来,spring bean加载顺序问题

否, 在解决问题中,我发现了一个奇特的现象是,如果common模块没有打成jar, gy模块正常启动得了, 如果common模块打成jar时, gy模块启动时service层注入的时候,会报找不到RedissonClient 这个bean.此时,瞬间懵b,这又是什么问题.........项目中有这样一段代码,不知道同事为什么这么写,A配置类,依赖于B配置类中的xx对象, 然后在A配置类上面加了@ConditionalOnBean(xx.class)的注解,导致项目启动一直说找不到A配置类中的Bean.

2024-03-05 16:43:01 824 1

原创 消息系统接口设计

消息系统接口设计 系统涉及的消息模块 短信接口设计 IM业务分析

2024-04-15 09:37:37 851

原创 Git回滚和强推的使用方法及注意事项

git有三大分区,平常我们操作git命令的时候,就是把文件提交在不同的分区流转,流程如下。(可参考如下图片理解)

2024-04-14 21:10:49 529

原创 SpringBoot项目打包部署Linux后访问不到resources下的文件

而对于 Class.getResource(String path)来说,可以加"/"开头,也可以不加"/"开头,它底层还是调到Class.getClassLoader().getResource(String path)去,但如果path不加"/",例如"static/img/template.png",则代表是相对路径,表示相对于当前运行这行代码的类,此时会加上 包名+static/img/template.png。结果打印出来了,并且可以看到有报错信息,就是开头所说的问题。也行,也可以正常运行。

2024-03-30 22:21:43 875

原创 mysql问题排查命令总结

注意,state只是语句执行中的某一个状态,一个sql语句,已查询为例,可能需要经过copying to tmp table,Sorting。解释:从server端发送数据到客户端,也有可能是接收存储引擎层返回的数据,再发送给客户端,数据量很大时尤其经常能看见。:显示执行的sql语句,因为长度有限,所以长的sql语句就显示不全,但是,是一个判断问题语句的重要依据。消耗内存,数据来回拷贝删除,消耗时间。:显示当前连接的执行的命令,一般就是休眠(sleep),查询(query),连接(connect)

2023-09-06 13:48:08 127

原创 Spring AOT java跨时代产物

Spring AOT 还支持通过配置文件自定义一些编译参数,以满足不同项目的需求。在目录下创建一个名为的文件,并添加以下内容:上述配置表示使用 agent 模式启动 AOT 编译器。

2023-04-21 16:37:11 1407 1

原创 ProxyFactory

在计算机科学中,代理模式是一种结构型设计模式,它可以为其他对象提供一个替代品或者占位符,以控制对这个对象的访问。代理对象通常充当了客户端和目标对象之间的中介,从而可以隐藏目标对象的实现细节、保护目标对象不被非法访问、增强目标对象的功能等等。代理模式有两种形式:静态代理和动态代理。静态代理的优点是能够提前做好一些工作,例如参数的检查、日志记录等等;缺点则是需要针对每个需要代理的接口编写一个代理类。而动态代理则可以根据接口生成代理对象,并且可以在运行时动态的添加和修改代理方法,因此更加灵活。

2023-04-21 15:20:35 292

原创 Cglib Callback使用

在Java中,有时需要使用代理模式来实现某些功能。Java提供了内置的动态代理支持,但其局限性较大,只能代理接口类型。如果要代理非接口类型的类,则可以使用Cglib库。Cglib是一个强大的Java字节码生成库,它允许我们动态生成字节码,并使用它来创建代理对象。在Cglib中,Callback是一个接口,通过实现Callback接口的不同子类来实现各种代理行为。常见的Callback类型包括MethodInterceptor、LazyLoader、Dispatcher、FixedValue和NoOp等。

2023-04-21 14:55:13 284

原创 Cglib入门到使用

Cglib是一个强大的Java代码生成库,用于创建动态代理和增强对象。本文介绍了Cglib的基础知识、核心原理和使用方法,以及一些高级用法,如字段拦截、构造函数拦截和BeanGenerator等。Cglib提供了比Java自带的动态代理更好的性能和灵活性,可以满足各种代理需求,是Java开发人员不可或缺的工具之一。

2023-04-21 14:51:01 648

原创 单点登录CAS

1.0、SSO概念单点登录(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO 并不能算是一种架构,只能说是一个解决方案。SSO核心意义就一句话:一处登录,处处登录;一处注销,处处注销。就是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,即用户只需要记住一组用户名和密码就可以登录所有有权限的系统。1.1、Cookie单点登录单点登录的实现方案,一般就包含以下三种:CookiesSession同步Session同步目前的大

2021-03-29 11:53:56 1108

原创 Spring Security会话管理-实战五

Spring Security已经为我们提供了完善的会话管理功能,包括会话固定攻击,会话超时检测以及会话并发控制。会话(session)就是无状态的HTTP实现用户状态可维持的一种解决方案。当用户首次访问系统时,系统会该用户生成一个sessionId,并添加到cookie中。在该用户的会话期内,每个请求都自动携带该cookie,因此系统可以很轻易地识别出这个来自那个用户的请求。一:会话固定攻击尽管cookie非常好用,但有时用户会在浏览器禁用它。为了解决这个问题,有些服务器还支持用URL重写的方式来实现

2021-03-25 16:40:09 579 1

原创 自动登录和注销登录-实战四

自动登录时将用户的登录信息保存在用户浏览器的cookie中,当用户下次访问时,自动实现校验并建立登录态的一种机制。Spring Security提供了两种非常好的令牌:用散列算法加密用户必要的登录信息并生成令牌。数据库等持久性数据存储机制用的持久化令牌。一:散列加密方案首先在静态页面加上<div> <p><input name="remember-me" type="checkbox" value="true">记住我</p></di

2021-03-24 22:18:27 338

原创 spring security实现图形验证码-实战三

代码gitee地址:https://gitee.com/original-intention/spring-security.git一:使用过滤器实现图形验证码1.使用开源的验证码组件kaptcha<dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</ver

2021-03-24 22:13:17 224

原创 spring security认证授权-实战二

一:基于内存的多用户认证授权:@EnableWebSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/admin

2021-03-23 16:37:38 184

原创 spring security自定义表单登录 实战一

<--spring security依赖--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency>加入依赖就可以进行HTTP基本认证,但绝大多数Web应用都不会选择这种认证方式,除了安全性差,无法携带cooki

2021-03-23 10:13:52 155 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除