- 博客(31)
- 资源 (2)
- 收藏
- 关注
原创 指针类型的意义
/指针的类型决定了指针+-1操作的时候,跳过几个字节。指针类型决定指针在被解引用的时候访问几个字节。如果是char*的指针,解引用访问1个字节。如果是int*的指针,解引用访问4个字节。
2023-08-09 15:55:11
105
原创 mysql索引实践(一)
Explain工具1.id列id列的编号是select的序列号,有几个select就有几个ID,并且id的顺序是按select的顺序增长的。id列越大执行优先级越高,id相同则从上往下执行,id为null最后执行。2.select_type列select_type表示对应的是简单还是复杂的查询。(1)simple:简单查询,查询不包含子查询和union(2)primary:复杂查询中最外层的select(3)derived:包含在from子句中的子查询,mysql会将
2022-05-09 09:07:16
377
原创 Spring容器加载完成后如何注册bean
1.获取到ConfigurableApplicationContext容器public static void main(String[] args){ final ConfigurableApplicationContext run = SpringApplication.run(Application.class, args); final ConfigurableListableBeanFactory beanFactory = run.getBeanFactory();
2022-02-17 22:09:08
479
原创 Ribbon拦截器添加请求头
定义拦截器@Slf4j@Componentpublic class MyRibbonInterceptor implements ClientHttpRequestInterceptor { @Override public ClientHttpResponse intercept(HttpRequest httpRequest, byte[] bytes, ClientHttpRequestExecution execution) throws IOException {
2022-02-10 10:38:03
339
原创 Sentinel 应用(二)
java 8及以上的版本的运行环境,支持Spring Cloud。1.创建maven工程引入Sentinel的依赖 <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactId> <version>1.8.3</version&g...
2022-02-08 09:06:10
326
原创 Sentinel 功能(一)
一、流量控制 流量控制,其原理是监控应用流量的 QPS 或并发线程数等指标,当达到指定的阈值时对流量进行控制,以避免被瞬时的流量高峰冲垮,从而保障应用的高可用性。流量控制有以下几个角度:资源的调用关系,例如资源的调用链路,资源和资源之间的关系; 运行指标,例如 QPS、线程池、系统负载等; 控制的效果,例如直接限流、冷启动、排队等。二、熔断降级除了流量控制以外,降低调用链路中的不稳定资源也是 Sentinel 的使命之一。由于调用关系的复杂性,如果调用链路中的某个资源出现...
2022-02-07 17:38:31
724
原创 APC理论
AP 优于CP 分布式系统领域有一个重要的CAP理论,该理论由加州大学克利分校Eric Brewer教授提出,由麻省理工学院的Seth Gilbert和Nancy Lynch进行理论证明。该理论提到了分布式系统的CAP三个特性: Consistency: 数据一致性,即数据在存在多副本的情况下,可能由于网络、机器故障、软件系统等问题导致数据写入部分副本成功,部分副本失败,进而造成副本之间数据不一致,存在冲突。满足一致性则要求对数据的更新操作成功之后,多副本的数据保持一致。 A...
2021-03-23 15:02:58
606
1
原创 SpringBoot中配置和使用Redis
properties文件配置#配置连接池属性#连接池最小空闲连接数spring.redis.jedis.pool.min-idle=5#连接池最大空闲连接数spring.redis.jedis.pool.max-idle=10#连接池最大连接数spring.redis.jedis.pool.max-active=10#连接池最大阻塞等待时间spring.redis.jedis.pool.max-wait=2000#配置redis服务器属性spring.redis.host=127.
2021-02-21 07:44:30
929
原创 es
索引:一个索引类似于传统关系数据库中的一恶搞数据库,是一个存储关系文档的地方。1.创建索引并添加内容,PUT索引名称megacorp类型名称emeployee特定雇员的ID1curl -X PUT “localhost:9200/megacorp/employee/1?pretty” -H ‘Content-Type: application/json’ -d’{“first_name” : “John”,“last_name” : “Smith”,“age” :
2021-01-31 17:07:31
224
原创 简单Redis单机版分布式锁
分布式锁需要具备以下要求:1.互斥行,在任意时刻只有一用户持有锁。2.不会发生死锁,即使有一个客户端持有锁的期间崩溃而没有解锁,也能保证其他客户端加锁。3.加锁和解锁必须是同一客户端。@Configurationpublic class RedisTool { private static final String LOCK_SUCCESS = "OK"; private static final String SET_IF_NOT_EXIST = "NX";
2021-01-27 10:26:25
174
原创 LIUNX安装MINIO
1.创建安装MINIO的文件夹。cd /usr/localmkdir minio2.下载安装包cd miniowget https://dl.min.io/client/mc/release/linux-amd64/mc3.付权chmod -x minio4.添加minio登录的账号密码并以后台模式启动export MINIO_ACCESS_KEY=minioadminexport MINIO_SECRET_KEY=minioadminnohup /usr/lo
2020-12-16 07:01:17
189
原创 JDK代理模式
简介代理模式是为对象提供一个代理以增强对象内的方法。例:你需要购买一套房子,需要自己去找房子看位置、谈价格一系列的事情。有了中介,我们只需要交钱入住。JDK动态代理public interface BuyHouse{ void buyHouse();}public class BuyHouseImpl implements BuyHouse{ public void buyHouse(){ System.out.println("买房子");
2020-12-05 09:37:27
329
原创 线程池使用
import com.google.common.util.concurrent.ThreadFactoryBuilder;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import java.util.concurrent.*;@Configurationpublic class ThreadPoolConfig {.
2020-11-25 22:39:50
627
原创 解决Request穿参乱码问题(装饰者模式)
public class EncodedServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response){ String name = request.getParameter("name"); System.out.println(name); } public void doPost(H...
2020-11-02 21:29:12
99
原创 正则表达式语法
普通字符(字母,数字,汉字,下划线) 一个普通字符在表达式中只匹配与之相同的一个字符 表达式k在字符串sky进行匹配时,将匹配成功 \r,\n,\t,\f 表示回车符,换行符,制表符,换页符 . 任意一个字符 X? 表示X可以出现0次或者1次 X+ 表示X可以出现1次或者多次 X* 表示X可以出现任意次 X{n} 表示X可以出现n次 X{m,n} ..
2020-10-22 07:35:47
1044
原创 异常处理
处理异常的几种格式try...catch try...catch...finally try...finally如何正确的处理异常1.正常情况三条信息都打印。public static void main(String[] args){ System.out.println("【1】程序开始执行"); System.out.println("【2】程序执行中" + 10/2); System.out.println("【3】程序始执完毕")...
2020-09-25 20:40:07
117
原创 使用反射给属性赋值.
利用反射机制给属性赋值并输出.import java.lang.Class;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.List;import java.util.Date;import java.text.SimpleDateFormat;public class Test{ public static void main(String[] args){ Stri
2020-08-04 09:01:50
399
原创 SpringBoot自定义注解效验入参
pom.xml <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.1.Final</version> </dependency> <
2020-06-18 10:47:27
648
原创 静态代理与动态代理
比如我们在给数据库新增数据时,没有使用代理之前,在我们操作每个方法之前都需要去打开数据库连接,方法执行完成后去关闭数据库,这是一件重复而费时的工作.public interface UserService{ public void save();}public class UserServiceImpl implements UserService{ @Autowired public void save(){ System.out.println("连接
2020-05-24 22:32:46
103
原创 Spring AOP 代理模式
创建一个简单的接口package com.springboot.chapter4.service;public interface HelloService { void sayHello(String name);}HelloService的实现类package com.springboot.chapter4.service.impl;import com.springboot.chapter4.service.HelloService;public class
2020-05-09 09:27:33
138
原创 自定义第三方Bean-4
现实的JAVA的应用往往需要引入许多来自第三方的包,并且很很有可能希望吧第三方包的类对象也放入到Spring IoC容器中,这时@Bean注解就可以发挥作用.例如,要引入一个DBCP数据源, <dependency> <groupId>org.apache.commons</groupId> ...
2020-05-07 14:26:53
473
原创 通过扫描装配Bean-3
如果一个个的Bean使用注解@Bean注入到Spring IoC容器中,那将是一件很麻烦的事情.好在Spring还允许我们进行扫描装配Bean到IoC容器,对于扫描装配而言使用的注解是@Component和@ComponentScan.@Component是标明那个类被扫描进入Spring IoC容器,而@ComponentScan则是标明采用何种策略去扫描装配Bean.package co...
2020-05-07 12:52:16
154
原创 AnnotationConfigApplicationContext基于注解的IOC容器-2
定义一个java对象package com.springboot.chapter3.pojo;import lombok.Data;@Datapublic class User { private Long id; private String username; private String note;}在定义一个java配置文件类AppCon...
2020-05-07 11:08:34
222
1
原创 开发自己的Spring Boot项目-1
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.8.RELEASE</version></pa...
2020-05-06 20:44:09
104
原创 Spring boot集成mybaitsPlus
引入jar<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.3.1.tmp</version></dependen...
2020-04-27 00:26:36
183
原创 ajax提交form表单
<!--form表单--><form id="formData"> <input type="hidden" name="uid" id="uid" th:value="${user.uid}"> <div class="form-group"> <label for="username">用户名</label&...
2020-04-21 11:12:41
290
原创 java解析pom内容
FileInputStream fis = new FileInputStream(new File(project + "/pom.xml"));MavenXpp3Reader reader = new MavenXpp3Reader();Model model = reader.read(fis);String artifactId = model.getArtifactId();...
2020-03-23 22:37:46
1360
原创 java多线程 继承Thread类,实现Runnable接口,实现callable接口,重写call方法.
1.继承Thread类class MyThread extends Thread{ private String title; public MyThread(String title){ this.title = title; } public void run(){ for(int i=0; i<10 ;i++)...
2020-01-13 19:33:59
588
原创 jdk8新特性Lambda表达式
@FunctionalInterfaceinterface IntNumber { int count(int i); default int add(int x,int y){ return x + y; } }public class LambdaDemo{ public static void main(String[] arg...
2020-01-08 10:01:25
174
原创 OSS简单文件上传-下载
1.上传地址以华北2为例 String endpoint = "http://oss-cn-beijing.aliyuncs.com"; 2.服务器用户密码 String accessKeyId = "<yourAccessKeyId>"; String accessKeySecret = "<yourAccessKeySecret>...
2018-08-06 11:40:16
3083
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人