SpringSecurity-原理初探(一)
SpringSecurity 原理初探(一)1、项目搭建创建一个SpringBoot项目、引入依赖
12345678<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId></dependency>
创建一个controller测试
123456789@RestControllerpublic class HelloController { @RequestMapping("/hello&qu ...
SpringBoot集成支付宝沙箱
1、准备工作支付宝开放平台 (alipay.com)
支付文档
登录支付宝开放平台获取沙箱环境信息
控制台
沙箱应用信息
密钥信息
2、整合SpringBoot依赖12345678910111213141516<dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.22.110.ALL</version></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.p ...
Spring Boot AOP记录用户操作日志
1.搭建一个SpringBoot web环境
maven依赖
12345678910111213141516171819<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency><dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> ...
FeignClient整合Sentinel
1、开启sentinel功能在application.yml文件,开启Feign的Sentinel功能:
123feign: sentinel: enabled: true # 开启feign对sentinel的支持
2、编写失败降级逻辑业务失败后,不能直接报错,而应该返回用户一个友好提示或者默认结果,这个就是失败降级逻辑。
给FeignClient编写失败后的降级逻辑
①方式一:FallbackClass,无法对远程调用的异常做处理
②方式二:FallbackFactory,可以对远程调用的异常做处理,我们选择这种
1234567891011121314@Slf4j@Componentpublic class UserClientFallbackFactory implements FallbackFactory<UserClient> { @Override public UserClient create(Throwable throwable) { return new UserClient() { ...
Spring事务传播行为
1.什么是事务传播行为==事务传播行为是为了解决业务层方法相互调用的事务问题==
当一个事务方法被另外一个事务方法调用时,必须指定事务如何传播
123456789101112131415161718@ServiceClass A { @Autowired B b; @Transactional(propagation = Propagation.xxx) public void aMethod { //do something b.bMethod(); }}@ServiceClass B { @Transactional(propagation = Propagation.xxx) public void bMethod { //do something }}
2.REQUIREDSpring默认的事务传播行为
如果外部方法没有开启事务的话,Propagation.REQUI ...
如何自定义SpringBoot Starter
1.新建boot-customer-starer空项目
2.创建一个maven场景启动器module不做任何处理
3.创建一个springboot module作为自动配置包
4.在场景启动器moduel中引入自动配置包pom.xml
123456789101112131415161718192021222324<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion&g ...
RabbitMQ队列模式
准备
项目结构
1.Basic Queue 简单队列模型在父工程mq-demo中引入依赖
12345<!--AMQP依赖,包含RabbitMQ--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>
1.1.消息发送首先配置MQ地址,在publisher服务的application.yml中添加配置:
1234567spring: rabbitmq: host: 192.168.149.111 # 主机名 port: 5672 # 端口 virtual-host: / # 虚拟主机 username: yang # 用户名 password: 123321 # 密码
然后在publisher服务中编写测试类SpringAmqpTest,并利用RabbitTempl ...
Mysql调优策略
1.思考流程当遇到调优问题时该如何思考?
整个流程划分成了 观察(Show status) 和 行动(Action) 两个部分。字母 S 的部分代表观察(会使 用相应的分析工具),字母 A 代表的部分是行动(对应分析可以采取的行动)。
我们可以通过观察了解数据库整体的运行状态,通过性能分析工具可以让我们了解执行慢的SQL都有哪些,查看具体的SQL执行计划,甚至是SQL执行中的每一步的成本代价,这样才能定位问题所在,找到了问题,再采取相应的行动。
2.性能分析2.1.慢查询日志
慢查询日志(Slow Query Log)是数据库管理系统的一项重要功能,它用于记录执行时间超过一定阈值的查询语句
2.1.1.开启slow_query_log查看是否开启
1mysql > show variables like '%slow_query_log';
如果没开启,则开启日志
1mysql > set global slow_query_log='ON';
2.1.2. 修改 long_query_time 阈值查看阈值 默认为10 ...
docker
docker学习笔记