- 博客(55)
- 收藏
- 关注
原创 Spring自我理解
生命周期1.实例化 Instantiation2.属性赋值 Populate3.初始化 Initialization3.1 aop4.销毁 DestructionInitializingBean接口里面的这个方法@Override public void afterPropertiesSet() throws Exception { //在为属性设置完值之后会去调用这个方法 }...
2021-09-09 17:12:53
208
原创 python
Demo1创建一个text.txt 往里面写入数据fp=open("D://text.txt","a+")print('hello,word',file=fp)fp.close()类型转换str(123) 讲int类型转为str类型int("123") 讲str类型转为int类型Demo2 获取键盘输入food = input("您想要吃什么?")print(food)Demo3 特殊运算符11//2 整除 结果5不是5.52**3 整除 2的3次方 2
2021-04-28 10:44:05
145
原创 Linux配置无密登录
1.ssh localhost 生成.ssh文件2.ssh-keygen -t rsa 生成公钥 私钥3.ssh-copy-id hadoop103
2021-03-26 16:57:48
176
1
原创 面试的内容
SpringMVC的工作流程首先我们的用户请求到前段控制器,前段控制器收到请求之后根据url找到处理器也就是我们的后端处理器,后端处理器也就是controller对应的requestMapping那个方法,执行完业务逻辑之后会返回一个ModelView到我们的前端控制器dispatcherServlet,再去调用视图解析器去解析,然后返回一个视图给前端控制器,前端控制器再渲染给用户的浏览器类加载机制JVM...
2021-02-26 21:15:02
213
1
原创 JSR303参数校验
@Datapublic class UserRegistVo { @NotEmpty(message = "用户名必须提交") @Length(min = 6,max = 18,message = "用户名必须是6~18位字符") private String userName; @NotEmpty(message = "密码必须填写") @Length(min = 6,max = 18,message = "密码必须是6~18位字符") private
2021-01-16 12:50:11
140
原创 对于一些直接跳转的页面我们可以不写controller
package com.gulimall.gulimallauth.config;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigur
2021-01-14 23:33:08
251
原创 mysql的自我总结
分组链接我们在查询的时候按照某个字段分组,那么我们查询的字段只能是我们分组字段或者是聚合函数,这时我们可以用分组连接函数把其他的字段全部连接起来。
2021-01-12 18:46:48
181
原创 前端笔记
location.href 可以直接跳转网页$(".sort_a") .开头 class选择器th:attr="pn=${result.pageNum +1} 可以自定义属性 pn${param.keyword} 可以用param直接去路径中参数前段判断是否为空 ${(!#strings.isEmpty§ #strings.endsWith(p,‘desc’) 以什么结束...
2021-01-10 22:50:30
104
原创 SpringCache自我学习
cacheable 把查询出来的数据放到缓存cacheevict 更新 – >删除模式cacheput 更新 --> 双写模式Cacheable() ->value是分区名 key是缓存名配置类@Configuration@EnableCaching //开启缓存@EnableConfigurationProperties(CacheProperties.class) //使用redis的容器里面的配置public class MyCacheConfig {
2021-01-04 22:42:51
239
原创 JUC并发编程
Semaphore ->也可以用于分布式限流这里调用acquire是占不到一直等待可以调用tryAcquire占不到 就返回falseCountDownLatch只有当设置的数量没有了 我们才解锁
2021-01-03 23:38:36
225
原创 Redis的自我总结
1.缓存穿透2.缓存雪崩3.缓存击穿redis实现分布式锁为了防止我们在执行业务的时候出现异常 或者是服务器宕机的意外 没有删除锁 导致我们出现死锁的现象 那么我们要在执行业务之前加一个过期时间。而这个加锁和我们的的加过期时间不能分开执行 要保证他是原子性的。这里删除的锁可能不是自己的锁 所以我们在加锁的时候 要放一个uuid 保证是自己的锁 那么我们取出来 在判断是自己的锁 这俩步操作又不是原子的了 所以我们要用lua脚本删锁利用Redisson实现分布式锁他可以使我们之
2021-01-03 23:19:29
140
原创 docker部署elastic
docker pull elasticsearch:7.4.2docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node"\ -e ES_JAVA_OPTS="-Xms64m -Xmx128m"\ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsea
2020-12-26 13:52:32
103
原创 springCloud-config配置中心
引入config依赖创建一个bootstrap.porperties 在里面配置当前应用的名字以及服务地址给nacos配置中心添加一个当前应用名.properties为默认规则给上边那个规则里面 添加我们想要的配置的东西动态获取我们配置的东西 不需要重新启动服务器@RefreshScope()+@Value如果配置中心和当前项目的配置文件都有 那么优先使用配置中心里面的东西。...
2020-12-10 21:39:51
97
原创 Springboot 项目打包为docker镜像
dockerfile先打包 然后把FROM java:8COPY *.jar /app.jarCMD ["--server--9123"]EXPOSE 9123ENTRYPOINT ["java", "-jar","/app.jar"]
2020-08-18 23:26:32
198
原创 部署Docker-Redis集群
模型1.创建我们自己的redis网络docker network create --subnet 172.38.0.0/162.通过脚本创建6个我们redis的配置文件for port in $(seq 1 6);\do \mkdir -p /mydata/redis/node-${port}/conftouch /mydata/redis/node-${port}/conf/redis.confcat << EOF > /mydata/redis/node-${por
2020-08-18 00:17:02
192
原创 发布Docker到hub或者阿里云
首先我们想把我们的镜像加我们自己的Tag然后直接pushdocker push xiyuehua/centos:1.0
2020-08-16 20:31:39
147
原创 Docker部署mysql
docker search mysqldocker pull mysql:5.7docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql01 mysql:5.7-v 挂载卷轴 -e配置密码docker run -d -p 3306:3306 -v 主机路径:容器路径
2020-08-15 13:46:27
174
原创 Docker部署es+kabana
启动elasticSearch官网给出的docker run -d --name elasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag但是es十分的耗费我们的内存,平时在我们的阿里云1核2G根本就顶不住 所以我们这里要限制他使用的内存就想JVM一样docker run -d --name elasticsearch -p 9200:920
2020-08-15 12:06:58
402
1
原创 Docker
安装可以直接跟着官网的操作去做https://docs.docker.com/engine/install/centos/仓库的话可以使用我们国内的阿里云阿里云镜像仓库yum install -y https://mirrors.aliyun.com/docker-ce/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.13-3.1.el7.x86_64.rpm卸载yum remove docker-ce docker-ce-cl
2020-08-14 00:18:33
120
原创 springboot集成kafka
首先启动kafka。注意要修改配置文件 打开远程控制1.创建springboot工程并引入kafka依赖 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId></dependency>2.在主配置文件里进行kafka的配置#======
2020-05-29 09:58:04
219
原创 Kafka常用命令 以及zookeeper is not a recognized option解决方法
基本命令创建topic./bin/kafka-topics.sh --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic codesheep查看已有的topic./bin/kafka-topics.sh --list --bootstrap-server localhost:9092创建生产者./bin/kafka-console-producer.sh --bootst
2020-05-29 00:42:32
11656
1
原创 SpringCloud
说起springCloud就不得不说一下我们的微服务开发:什么是微服务?我们的传统架构,所有的模块都在同一个项目当中。多个模块之间相互调用,耦合度很高,对于一些功能简单,单一的应用我们的传统响应很快也很方便,但是随着互联网的发展,我们的传统项目已经不能满足我们的需求了。这是我们就把传统项目的模块单独拆分出来组成一个个的服务,然后各个服务之间单独部署,相互调用。降低了我们系统的耦合度,也便于我们维护,但是也给我们开发带来了许多的困难。springCloud作为我们spring家族微服务的一把利器,受到
2020-05-17 21:56:49
173
原创 分布式事务与分布式锁
CAP我们的CAP理论最多只能同时满足俩个我们的Dubbo满足了cp没有满足a!!比如我们Zookeeper是一个由多个server组成的集群一个Leader多个follower,假如我们的leader挂掉了,这是我们保证了分区容错性,会迅速从follower里选择出来一个leader(选举的过程中不对外提供服务)。但这是如果有请求进来就会出错(所以没有保证可用性)。dubbo进行数据修改时需要将主节点和从节点数据同时进行修改。我们的Springcloud满足了ap没有满足cspringclou
2020-05-09 17:02:05
713
原创 Linux下查看cup 内存 io使用情况 以CPU占用过高解决思路 主要分析我们实际环境中项目运行变慢
Top执行top命令 查看整机的系统性能 主要是cpu和内存等的执行情况。右上角load average(系统的负载均衡) 如果三个值相加除以100大于60%说明系统的压力大。uptimevmstat -n 2 3查看cup的执行状态 每俩秒查看一次 采样3次查看所有cpu核信息: mpstart -P ALL 2 (每俩s采样一次)查看单个进程使用cup的用量分解信息:...
2020-05-06 22:48:58
433
原创 创建多线程的四种方式 (线程池 重点)
1.集成Thread2.实现Rubbable接口3.实现Callable接口 配合FuturTaskclass myThread implements Callable<Integer>{ @Override public Integer call() throws Exception { System.out.println("come in"...
2020-05-05 18:52:36
739
原创 手写java死锁及排查
class Resource implements Runnable{ private String lockA; private String lockB; public Resource(String lockA, String lockB) { this.lockA = lockA; this.lockB = lockB; }...
2020-05-05 18:47:20
199
原创 jvm自我理解
JVM提到JVM它里面分为了很多块… 我们的类加载器是我们JVM的入口负责把我们的class文件写入到jvm里面去,我们的执行引擎是我们jvm的出口他负责jvm与我们操作系统的交互。然后就是我们本地方法栈(里面存储着java执行不了的方法用native修饰)和本地方法接口(这里指的是操作系统的接口),调用过程中如果需要第三方类库的支持那么久需要本地方法库。那么我们的java栈就是存储我们的实...
2020-05-02 14:58:36
204
原创 手写一个生产者消费者_阻塞队列。
class MyResorces { private volatile boolean FLAG = true; private AtomicInteger atomicInteger = new AtomicInteger(); BlockingQueue<String> blockingDeque = null; //构造器注入 publi...
2020-05-01 19:10:28
218
原创 ArrayList线程不安全三种解决情况
在多线程高并发的情况下arrayList会抛出concurrentModificationException解决情况1.vector2. Collections.synchronizedList(new ArrayList<>());3. 用JUC包下的CopyOnWriteArrayList源码分析public boolean add(E e) { fin...
2020-04-30 20:27:28
164
原创 AtomicInteger的getAndIncrement 相当于i++为什么能够保证原子性
研究这个方法的底层源码AtomicInteger用CAS但不用synchronized用synchronized一致性得到了保障但并发性下降了很多我们用CAS是用do…while反复进行判断既保证了一致性 又没有降低并发性。CAS---->compare And Swap,他是一条CPU并发原语。他在执行过程中不允许中途被打断,也就是说CAS是一条cpu上的原子指令,不会造成数...
2020-04-30 13:58:42
1336
原创 java单例模式
public class SingletonDemo { //注意这里要加volatile 否则会指令重排有可能出现问题 private static volatile SingletonDemo instance = null; private SingletonDemo() { System.out.println(Thread.currentThread()...
2020-04-30 10:13:38
120
原创 linux启动mysql,redis,rabbit,nginx,fastdfs,zookeeper的命令
1.mysql./mysqld_safe &2.redis ./redis-server ../redis.conf &3.rabbitrabbitmq-server start 开启rabbitmqctl stop 关闭4.nginxfastdfs需要再nginx_fdfs里面开启 命令都是一样的./sbin/nginx -c ./conf...
2020-04-29 21:57:58
275
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人