![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
框架
文章平均质量分 65
ssm/sb/sc
xl拾一
这个作者很懒,什么都没留下…
展开
-
数据权限 基于mybatis plus插件
数据权限 基于mybatis plus插件方案关键:表create_by字段,需要做数据权限的某张表,根据当前登录用户的数据权限(例如ALL、ME、CUR_DEPT、CUR_DEPT_WITH_SUB_DEPT、CUSTOM)获取部门——>用户id,然后查询某张表时附加条件and create_by in [userIds]说明1、mp 拦截器中注入mapper,需要使用@Lazy懒加载,否则出现循环引用sqlcreate table ds_dept ( id bigint(20原创 2022-04-26 21:58:28 · 2068 阅读 · 1 评论 -
Spring Boot(25)集成minio图片服务器
Spring Boot(25)集成minio图片服务器安装集成依赖:minio配置Bean:MinioClient初始化:初始化bucket并设置policy上传操作要点:policy实现:resources下新增BucketPolicy.json文件,初始化时读取json文件进行设置policy(代码里封装json比较麻烦),并替换bucketName{ "Statement": [ { "Action": [ "s3:GetBucketLoc原创 2022-04-12 14:20:10 · 627 阅读 · 0 评论 -
Spring Boot Transactional注解与回滚异常
Spring Boot Transactional注解与回滚异常文章目录Spring Boot Transactional注解与回滚异常事务方法执行事务方法异常处理事务方法rollbackFor处理事务方法执行Object retVal;try { retVal = invocation.proceedWithInvocation();} catch (Throwable ex) { completeTransactionAfterThrowing(txInfo, ex);原创 2021-12-20 15:18:01 · 923 阅读 · 0 评论 -
Spring Boot(24)集成Redis lua实现限流
Spring Boot(24)集成Redis lua实现限流文章目录Spring Boot(24)集成Redis lua实现限流细节流程1. 注解定义2. 切面3. RedisScript4. 接口和异常细节lua脚本注解切面spel解析全局异常处理器流程1. 注解定义@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented@Repeatable(Limiters.class)publi原创 2021-12-17 14:21:29 · 643 阅读 · 0 评论 -
Spring Boot(23)单元测试——Mock
Spring Boot(23)单元测试——Mock文章目录Spring Boot(23)单元测试——Mock1. 模拟接口2. 编写测试补充1. 模拟接口功能:+两个字符串2. 编写测试说明:分层编写test一个小模块(单表)一个testservice会进行空检测,null作为空白字符串处理service:test@SpringBootTestclass DemoServiceImplTest { @Autowired private DemoServiceImpl原创 2021-12-16 21:54:51 · 358 阅读 · 0 评论 -
Spring Security总结(参考CSDN Jitwxs专栏文章)
Spring Security总结参考目录SpringBoot集成Spring Security(1)——入门程序SpringBoot集成Spring Security(2)——自动登录SpringBoot集成Spring Security(3)——异常处理SpringBoot集成Spring Security(4)——自定义表单登录SpringBoot集成Spring Security(5)——权限控制SpringBoot集成Spring Security(6)——登录管理SpringBo原创 2020-10-14 23:31:18 · 129 阅读 · 0 评论 -
Spring Security源码阅读(1)
Spring Security文章目录Spring Security1. 介绍功能2. 核心组件2.1 核心接口AuthenticationAuthenticationManagerAuthenticationProviderUserDetails和UserDetailsServiceSecurityContext和SecurityContextHolder2.2 过滤器链过滤器:UsernamePasswordAuthenticationFilter抽象父类:AbstractAuthentication原创 2020-10-21 17:41:49 · 254 阅读 · 0 评论 -
AnnotationConfigApplicationContext与ClassPathXmlApplicationContext区别
AnnotationConfigApplicationContext说明:入参传入一个@Configuration标示类,内部定义几个@Bean注册Bean配置类(入参类)刷新上下文AnnotationConfigApplicationContext#refresh流程注解区别于ClassPath在于加载的方式不同:XML方式,在实例化容器阶段,读取配置,注册为BeanDefinitionAnnotation方式,在BeanFactory后置处理器调用阶段,通过Configurat原创 2021-06-10 17:43:56 · 1096 阅读 · 0 评论 -
三级缓存和代理
三级缓存和代理场景一:AB循环引用,A会被AOP处理A实例化,入三级缓存(getEarlyBeanReference),填充属性引起B的处理A:位于三级缓存,是target,属性填充阶段B实例化,入三级缓存,填充属性查三级缓存,触发getEarlyBeanReference执行,此阶段会进行AspectJAwareAdvisorAutoProxyCreator处理,返回A#proxyA#proxy移动到二级缓存B属性填充完成后续操作:初始化,其他处理,移动到一级缓存A:位于二级原创 2021-06-10 16:57:48 · 200 阅读 · 0 评论 -
Spring三级缓存、循环依赖、AOP
循环依赖记录记录:循环依赖的两个类,使用lombok @Data,toString方法循环调用,栈溢出,重写toString,避免循环调用三级缓存一级缓存:singletonObjects。完成初始化的单例bean二级缓存:earlySingletonObjects。完成实例化的单例bean(未完成初始化)三级缓存:singletonFactories。创建中的beansingletonsCurrentlyInCreation图refresh说明:内部是一个 synchron原创 2020-11-24 16:21:20 · 589 阅读 · 0 评论 -
ClassPathXmlApplicationContext#refresh
ClassPathXmlApplicationContext#refresh流程1. 准备context: prepareRefresh()do:设置属性值startupDateSystem.currentTimeMillis()closedfalseactivetrue初始化所有占位符属性源验证被标记为required的属性是否可解析初始化属性值applicationListenersapplicationLi原创 2021-06-10 17:24:33 · 470 阅读 · 0 评论 -
Spring IOC和AOP
Spring总结文章目录Spring总结1. 概述Spring容器Bean配置bean的方式注入属性的方式作用域生命周期其他面向切面编程术语1. 通知 Advice2. 连接点 Join Point3. 切点 Pointcut4. 切面 Aspect5. 引入 Introduction6. 织入 WeAVingSpring AOPAspectJ对比关系型数据库访问原生的JDBCSpring JDBCORM框架Spring Data JPA事务非关系型数据库的访问Redis安全:Spring Securit原创 2020-08-04 23:19:14 · 218 阅读 · 0 评论 -
Spring MVC处理流程
Spring MVC处理流程相关类DispatcherServletHandlerMappingHandlerExecutionChainHandlerAdapter AbstractHandlerMethodAdapter RequestMappingHandlerAdapter extends AbstractHandlerMethodAdapter ServletInvocableHandlerMethod extends InvocableHandlerMethod extends原创 2020-11-29 21:32:38 · 121 阅读 · 0 评论 -
MyBatis原理总结
MyBatis执行流程文章目录MyBatis执行流程简介org.mybatis关键点架构原理流程第一步:读取配置文件,构造SqlSessionFactory方法签名处理流程parseConfigurationpropertiessettingstypeAliasespluginsenvironment其他标签第二步:构造SqlSession方法签名处理流程第三步:获取XxxMapper方法签名处理流程第四步:调用方法INSERT命令——>updateSELECT命令——>querytodo简原创 2021-12-04 15:44:36 · 324 阅读 · 0 评论 -
MyBatis 概览
mybatis概览原创 2020-03-11 20:41:14 · 121 阅读 · 0 评论 -
MyBatis使用总结
MyBatis原创 2020-10-15 23:13:39 · 94 阅读 · 0 评论 -
Spring Boot(22)集成MyBatis Plus实现读写分离
Spring Boot, MyBatis Plus, 自定义拦截器,中间件原创 2021-12-02 16:50:42 · 1306 阅读 · 0 评论 -
Spring Transaction
Spring Transaction文章目录Spring TransactionJDBC事务编程式事务核心接口demo步骤声明式事务两个注解事务处理流程小结JDBC事务基于Connection相关接口实现事务处理void setAutoCommit(boolean autoCommit);void setReadOnly(boolean readOnly);void setTransactionIsolation(int level);Savepoint setSavepoint(String原创 2021-11-24 14:13:29 · 704 阅读 · 0 评论 -
Spring Boot(21)定时任务
Spring Boot(21)定时任务referhttps://www.xuxueli.com/xxl-job/步骤拉取代码,执行数据库脚本,运行调度服务编写定时任务访问调度中心,新建执行器并启动1. 调度服务下载地址:https://github.com/xuxueli/xxl-job.git, https://gitee.com/xuxueli0323/xxl-job.git数据库脚本路径:doc/db/tables_xxl_job.sql修改配置文件:数据源运行调度中心:xx原创 2021-11-22 17:10:38 · 111 阅读 · 0 评论 -
Spring Boot(03)配置日志
第03篇:日志配置resources新建logback.xml<?xml version="1.0" encoding="UTF-8"?><configuration> <!-- 日志存放路径 --> <property name="log.path" value="log/app" /> <!-- 日志输出格式 --> <property name="log.pattern" value="%d{HH:mm:原创 2020-09-03 17:47:53 · 778 阅读 · 0 评论 -
Spring Boot(20)表格
文章目录介绍效果图源码介绍如题,一个信息显示功能的web。功能:登录展示:表格形式效果图源码见本人CSDN资源模块的“student.rar”。ps:由于刚上传,处于待审核,懒得加链接了...原创 2020-04-21 21:22:24 · 127 阅读 · 0 评论 -
Spring Boot(10)多库事务——JTA和Atomikos
第10篇:多库事务描述Spring 的声明式事务方法@Transactional只支持单数据源。分布式事务方案选择:2PC(两阶段提交)3PC(三阶段提交)TCC(补偿机制)最大努力通知XA本地消息表(eBay)事务消息/最终一致性(RocketMQ)然后,JTA即Java Transaction API和JTS即Java Transaction Service为Java EE提供了分布式事务服务,包括事务管理器 TM、资源管理器 RM(支持XA协议,如JMS、JDBC数据库连接池原创 2020-09-03 17:55:26 · 497 阅读 · 0 评论 -
Spring Boot(19)Ajax登录
Spring Boot Ajax登录文章目录Spring Boot Ajax登录说明代码前端登录页面前端ajax处理控制器请求实体类响应实体类application.properties说明IDEA新建Spring Boot项目,实现登录——基于Ajax实现。代码前端登录页面login.html<!DOCTYPE html><html lang="en">...原创 2020-03-18 09:52:40 · 277 阅读 · 1 评论 -
Spring Boot(08)分页插件
第08篇:分页插件pagehelper流程依赖配置使用1. 依赖<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.3.0</version></dependency>2. 配置pagehelpe原创 2020-09-03 17:53:37 · 94 阅读 · 0 评论 -
Spring Boot(05)自定义interceptor
第05篇:自定义interceptor流程定义拦截器配置1. interceptor classpublic class PrintInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Excepti原创 2020-09-03 17:49:06 · 174 阅读 · 0 评论 -
Spring Boot(16)自定义starter
第16篇:自定义starter流程新建module:hello-spring-boot-starter-autoconfigure新建module:hello-spring-boot-starter新建工程,测试1. 新建autoconfigure module属性配置bean@ConfigurationProperties("hello")public class HelloProperties { private String prefix; private Stri原创 2020-09-10 21:36:17 · 74 阅读 · 0 评论 -
Spring Boot(06)mybatis连接MySQL
第06篇:mybatis连接MySQL流程添加依赖配置启动类注解编写mapper1. 添加依赖<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.0.0</version></dependency>&原创 2020-09-03 17:49:42 · 79 阅读 · 0 评论 -
Spring Boot(12)redis用作缓存
第12篇:redis用作缓存流程见第11篇cache配置类使用2. cache配置类key生成策略:类名+方法名+参数名注解:@EnableCaching@Configuration@EnableCachingpublic class RedisConfig extends CachingConfigurerSupport { @Bean public KeyGenerator keyGenerator() { return new KeyGenerator() { @原创 2020-09-04 14:43:08 · 105 阅读 · 0 评论 -
Spring Boot(14)定时任务
第14篇:定时任务使用开启@EnableScheduling编写任务@Component@Slf4jpublic class PrintTask { @Scheduled(cron = "0/2 * * * * *") public void print() { log.info("current time: {}", LocalDateTime.now()); }}@Scheduled说明cron非cron:fixedRate原创 2020-09-04 14:44:38 · 110 阅读 · 0 评论 -
Spring Boot(15)全局异常
第15篇:全局异常流程定义自定义异常编写异常处理器控制层抛异常1. 定义自定义异常@Getterpublic class CustomException extends RuntimeException { private String message; public CustomException(String message) { super(message); this.message = message; }}2. 编原创 2020-09-04 15:02:41 · 72 阅读 · 0 评论 -
Spring Boot(11)redis基本使用
第11篇:redis基本使用流程依赖配置使用1. 依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency> <groupId>org.apache.commons<转载 2020-09-04 14:37:32 · 65 阅读 · 0 评论 -
Spring Boot(07)数据库连接池
第07篇:数据库连接池druid流程依赖配置1. 依赖<dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.23</version></dependency>2. 配置2.1 基础配置spring.datasource.ty原创 2020-09-03 17:50:12 · 111 阅读 · 0 评论 -
Spring Boot(09)多数据源
第09篇:多数据源流程配置数据源配置1. 配置数据源spring.datasource.test1.jdbc-url=jdbc:mysql://localhost:3306/test1?serverTimezone=Asia/Shanghaispring.datasource.test1.username=rootspring.datasource.test1.password=961225spring.datasource.test1.driver-class-name=com.mys原创 2020-09-03 17:54:36 · 83 阅读 · 0 评论 -
Spring Boot(18)AOP demo
AOP1. 概念Aspect 切面,@AspectJoin point 连接点,例如方法或异常的执行Advice 通知,切面在连接点处采取的操作Pointcut 切点,与连接点匹配的谓词IntroductionTarget objectAOP proxyWeavingAdvice类型Before advice,在连接点之前执行After returning advice,在连接点正常完成后执行(比如,方法返回没有抛出异常)After throwing advice,方法原创 2020-11-13 15:52:03 · 190 阅读 · 0 评论 -
Spring Boot(13)redis用作分布式session
第13篇:redis用作分布式session流程见第11篇依赖配置使用2. 依赖<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId></dependency>3. 配置@Configuration@EnableRedisHttpSessio原创 2020-09-04 14:44:07 · 70 阅读 · 0 评论 -
Spring Boot(17)参数校验
第17篇:参数校验校验方式业务层使用代码校验,如public List<Student> getStudents(Student stu) { // 姓名、性别(0或1表示)、年龄、专业、手机号、邮箱 if (Objects.nonNull(stu)) { .. } if (StringUtils.isBlank(stu.name)) { .. } if (stu.sex < 0 || stu.sex原创 2020-11-13 19:37:28 · 231 阅读 · 0 评论 -
Spring Boot(02)web demo
第02篇:web demo流程添加依赖编写控制器MockMvc测试1. pom依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>2. 编写控制器@RestControllerpublic class IndexContr原创 2020-09-03 17:46:52 · 116 阅读 · 0 评论 -
Spring Boot(01)maven或pom指定aliyun
第01篇:maven或pom指定aliyunmaven指定<mirrors> <mirror> <id>aliyunmaven</id> <mirrorOf>central</mirrorOf> <name>阿里云公共仓库</name> <url>https://maven.aliyun.com/repository/central</url> </mirro原创 2020-09-03 17:45:38 · 372 阅读 · 0 评论 -
Spring Boot(04)自定义filter
第04篇:自定义filter方案FilterRegistrationBean bean@WebFilter注解 + @ServletComponentScan流程定义filter class配置filter bean1. filter classpublic class MyFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException原创 2020-09-03 17:48:22 · 112 阅读 · 0 评论