编程码农张
码龄3年
关注
提问 私信
  • 博客:80,157
    80,157
    总访问量
  • 73
    原创
  • 1,170,639
    排名
  • 13
    粉丝
  • 0
    铁粉

个人简介:简单粗暴的带你走进编程世界

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖南省
  • 加入CSDN时间: 2022-03-12
博客简介:

m0_68006260的博客

查看详细资料
个人成就
  • 获得13次点赞
  • 内容获得4次评论
  • 获得78次收藏
创作历程
  • 73篇
    2022年
成就勋章
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

RESTful介绍和使用教程

REST(Representational State Transfer)表象化状态转变(表述性状态转变),在2000年被提出,基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计。是Web服务的一种新的架构风格(一种思想)代码不被侵入(正例:SpringMVC中不用接口和继承,仅用注解完成。反例:Struts中每一个Action都要继承核心控制器),轻量级跟包大小无关。耦合性越低,越轻量。符合上述REST原则的架构方式称为RESTfulURI:http://exampl
原创
发布博客 2022.06.07 ·
595 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

什么是乐观锁、悲观锁

锁生活中:锁在我们身边无处不在,比如我出门玩去了需要把门锁上,比如我需要把钱放到保险柜里面,必须上锁以保证我财产的安全。代码中:比如多个线程需要同时操作修改共享变量,这时需要给变量上把锁(syncronized),保证变量值是对的。数据库表:当多个用户修改表中同一数据时,我们可以给该行数据上锁(行锁)。悲观锁(悲观并发控制)当我们要对数据库中的一条数据进行修改的时候,为了避免同时被其他人修改,最好的办法就是直接对该数据进行加锁以防止并发的发生。为什么叫做悲观锁呢?因为这是一种对数据的修改抱有悲观态度的并发控
原创
发布博客 2022.06.06 ·
422 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Maven 基础环境搭建 项目依赖jar包导入

一、创建一个Maven工程  不清楚的话请查阅其它文档。二、引入项目依赖的jar包  1、Spring  2、SpringMvc  3、Mybatis  4、 数据库连接池,驱动  5、其它(jstl、servlet-api、junit)三、方法  Maven工程jar包库:http://mvnrepository.com/2、Mybatis为例,选择对应的版本;3、复制如下图所示的配置代码; 4、粘贴到自己Maven工程文件下的pom.xml中(后面会附完整示例配置);附:完整pom.xml配置信息。..
原创
发布博客 2022.06.04 ·
590 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

AtomicInteger如何保证线程安全?

public class AtomicInteger extends Number implements java.io.Serializable {private static final long serialVersionUID = 6214790243416807050L;/** This class intended to be implemented using VarHandles, but there* are unresolved cyclic startup dependencies.*
原创
发布博客 2022.06.03 ·
1861 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringBoot整合Flowable

flowable-spring-boot-starter-basicorg.flowableflowable-spring-boot-starter-basic${flowable.version}完整pomorg.springframework.boots
原创
发布博客 2022.06.02 ·
1080 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Spring boot 配置整合RabbitMq

Spring boot 配置整合RabbitMq这篇文章是在使用rabbit时,自己创建的demo,一些简单的介绍内含消息推送实例,消费实例,Direct、Fanout的使用;首先是为什么使用RabbitMq,说下Rabbit的优缺点:优点:应用异步将需要同步处理的并且耗时的操作由消息队列来进行一步操作,提高了程序的响应时间应用解耦系统的耦合度越高,容错率就越低,可维护行越低,Mq可以使应用间解耦,提升容错率和可维护性流量削峰根据系统的存储速度来定制每秒可接受数量,高并发下,数据堆积在Mq中,并发结束后,继
原创
发布博客 2022.06.01 ·
840 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

FastDFS快速实现和SpringBoot的整合开发

FastDFS客户端操作1.Fastdfs-java-client首先我们来看下如何实现FastDFS中提供的JavaAPI来直接实现对应的文件上传和下载操作。1.1 文件上传先来看下文件上传的流程上传流程的文字梳理为:客户端访问Tracker Tracker 返回Storage的ip和端口 客户端直接访问Storage,把文件内容和元数据发送过去。 Storage返回文件存储id。包含了组名和文件名首先创建一个普通的maven项目,然后引入对应的依赖 1<
原创
发布博客 2022.05.31 ·
313 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

要掌握的Java核心技术

在JVM这个大类中,我认为需要掌握的知识有:JVM内存模型和结构 GC原理,性能调优 调优:Thread Dump, 分析内存结构 class 二进制字节码结构, class loader 体系 , class加载过程 , 实例创建过程 方法执行过程 Java各个大版本更新提供的新特性(需要简单了解)2. Java的运行这条可能出看很简单,java程序的运行谁不会呢?不过很多时候, 我们只是单纯通过IDE去执行java程序,底层IDE又是如何执行java程序呢?很多人并不了解。这
原创
发布博客 2022.05.30 ·
173 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

HashMap的死循环

问题最近的几次面试中,我都问了是否了解HashMap在并发使用时可能发生死循环,导致cpu100%,结果让我很意外,都表示不知道有这样的问题,让我意外的是面试者的工作年限都不短。由于HashMap并非是线程安全的,所以在高并发的情况下必然会出现问题,这是一个普遍的问题,虽然网上分析的文章很多,还是觉得有必须写一篇文章,让关注我公众号的同学能够意识到这个问题,并了解这个死循环是如何产生的。如果是在单线程下使用HashMap,自然是没有问题的,如果后期由于代码优化,这段逻辑引入了多线程并发执行,在一
原创
发布博客 2022.05.29 ·
2363 阅读 ·
2 点赞 ·
1 评论 ·
9 收藏

Java学习路线总结

本文整理了java开发的学习路线和相关的学习资源,非常适合零基础入门java的同学,希望大家在学习的时候,能够节省时间。良心推荐!第一阶段:Java基础重点知识点:数据类型、核心语法、面向对象、数组、集合、IO流、String/StringBuffer/StringBuilder、线程、并发、反射、泛型学习Java开发,首先要学习java基础知识,尤其是校招的时候非常注重基础,即使没有项目也没关系,基础一定要打好,一般笔试以及面试的第一轮,对基础的考察是比较多的。Java面向对
转载
发布博客 2022.05.28 ·
494 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Java中间件-Kafka

Kafka的介绍Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。Kafka 有如下特性:以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。同时支持离线数据处理和实时数据处理。Scale out:支持
原创
发布博客 2022.05.27 ·
256 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java中间件-RabbitMQ

一. RabbitMQ 简介MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。A
原创
发布博客 2022.05.27 ·
518 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Java中间件-shiro

1. 什么是shiroshiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。spring中有spring security (原名Acegi),是一个权限框架,它和spring依赖过于紧密,没有shiro使用简单。shiro不依赖于spring,shiro不仅可以实现 web应用的权限管理,还可以实现c/s系统,分布式系统权限管理,shiro属于轻量框架,越来越多企业项目开始使用shiro。2. 在应用程序角度来观察如何使用Shiro完成工作(图01)
原创
发布博客 2022.05.27 ·
646 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java中间件-springsecurity

1.springsecurityspringsecurity底层实现为一条过滤器链,就是用户请求进来,判断有没有请求的权限,抛出异常,重定向跳转。2.登录页springsecurity自带一个登录页。从登陆入手,登录页替换成我们自己的,对输入的账号密码进行验证*** 表单登陆security* 安全 = 认证 + 授权*/@Configurationpublic class SecurityConfig extends WebSecurityConfigurerA
原创
发布博客 2022.05.25 ·
431 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java中间件-JWT

一、简介1、JWTJWT为Json Web Token,是一种令牌生成算法。使用JWT能够保证Token的安全性,且能够进行Token时效性的检验。2、JWT结构JWT共由三部分组成,分别是数据头(Header)、Payload(数据体)、验证签名(Verify Signature)组成。其中,Header中的内容为加密信息以及Token的类别,Payload为用户数据、Verify Signature为校验数据。二、依赖JWT需要两个依赖java-jwt、jjwt&l.
原创
发布博客 2022.05.24 ·
1781 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java中间件-zookeeper

一、zookeeper的基本原理数据模型,如下:ZooKeeper数据模型的结构与Unix文件系统很类似,整体上可以看作是一棵树,每个节点称做一个ZNode。每个ZNode都可以通过其路径唯一标识,比如上图中第三层的第一个ZNode,它的路径是/app1/c1。在每个ZNode上可存储少量数据(默认是1M, 可以通过配置修改,通常不建议在ZNode上存储大量的数据),这个特性非常有用。另外,每个ZNode上还存储了其Acl信息,这里需要注意,虽说ZNode的树形结构跟Unix文件系统很类似,
原创
发布博客 2022.05.24 ·
556 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java中间件-Eureka

Eureka(注册中心)eureka为服务注册,分为服务端和客户端,客户端注册进服务端,服务端可配置集群互相守望。服务端不处理业务,只负责服务注册,客户端才负责数据处理 ;服务者和消费者都需要注册。在openfeign之后都是用openfeign访问。关键注解启动类@EnableEurekaServer // 服务端注册@EnableEurekaClient // 消费端注册@EnableDiscoveryClient // 可获取当前服务的相关信息(可选)一、服务端pom:
原创
发布博客 2022.05.24 ·
1145 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Java中间件-Resilience4j

核心组建组件名称 功能resilience4j-circuitbreaker Circuit breakingresilience4j-ratelimiter 频率控制resilience4j-bulkhead 依赖隔离&负载保护resilience4j-retry 自动重试resilience4j-cache 应答缓存resilience4j-timelimiter 超时控制Resilience4j是一个轻量级、易于使用的容错库,其灵感来自Netflix Hystr
原创
发布博客 2022.05.23 ·
340 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java中间件-Hystrix

一、背景介绍1、服务雪崩分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,如果各个服务正常运行,那大家齐乐融融,高高兴兴的,但是如果其中一个服务崩坏掉会出现什么样的情况呢?如下图,当Service A的流量波动很大,流量经常会突然性增加!那么在这种情况下,就算Service A能扛得住请求,Service B和Service C未必能扛得住这突发的请求。此时,如果Service C因为抗不住请求,变得不可用。那么Service B的请求也
原创
发布博客 2022.05.23 ·
736 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java中间件-solr

solr在java程序中的应用1.导入jar包org.apache.solrsolr-solrj程序代码//增加索引库@Testpublic void addDocument() throws Exception{//创建连接SolrServer solrServer = new HttpSolrServer("http://192.168.21.198:8080/solr/");//创建文档对象SolrInputDocument doucument= new S
原创
发布博客 2022.05.23 ·
635 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多