自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 情人节!原来程序员也可以那么浪漫!

程序员的情人节,演示烟花,树叶飘落特效首页代码片段特点介绍源码地址情人节没有对象的点个赞吧!!!!2月14日,是西方的传统节日之一。男女在这一天互送巧克力、贺卡和花,用以表达爱意或友好,现已成为欧美各国青年人喜爱的节日。大概这世上有多少情人就有多少关于情人节来历的诠释吧。和中国人现在用近乎狂热的热情过起了圣诞节一样,情人节也已经悄悄渗透到了无数年轻人的心目当中,成为中国传统节日之外的又一个重要节日。2021情人节到了,赶紧给心爱的女朋友表达自己的爱吧

2021-02-06 19:25:18 13747 11

原创 程序员的2020年

今年把微服务分布式学了一下,做了个练手项目,也算是正式踏入JAVA后端的门槛,敲敲CRUD;开始看设计模式,算法,并发多线程等,这些作为求职的敲门砖,早看早好,而且知识是需要积累的;

2020-12-26 14:00:33 6798 4

原创 腾讯位置服务入门

WebService API,小程序,Android地图SDK;通过接口调用腾讯位置服务,可以直接在浏览器中输入链接地址+参数,即可打开腾讯地图功能并看到地图,之后便可以操作;定位,地点搜索,路线规划,地址解析等;

2020-12-17 13:38:25 34354 7

原创 API安全性与缓存机制OAuth2-使用REST JSON XML和JAX-RS构建微服务,大数据(二)

api OAuth安全性与缓存,令牌令牌是由授权服务器生成的随机字符串,在客户端请求时发出;1. 访问令牌(Access Tokens)允许第三方应用程序访问用户数据,由客户端作为参数发送,生存时间由授权服务器定义,另外必须维持保密性,一般对用户不透明,可能被客户端网站储存起来(存在session中也不一定)2. 刷新令牌随着访问令牌发出,但不同,不是每次请求都发送,仅用于发送到授权服务器;授权码何时用到?需要获得长时间的访问令牌,授权码可以使用刷新令牌进行续订;

2020-12-13 22:19:32 6759 4

原创 使用REST JSON XML和JAX-RS构建微服务,大数据(一)

RESTful API ,SAOP 的基本原理,SAOP,REST等;开发人员通常都需要为一个应用写API接口,使应用集成业务逻辑运行在服务器上,只要客户端和服务器符合web的统一接口,它们就可以使用任何语言或技术独立实现部署;REST(Representation State Transfer (表述性状态传递))是一种软件架构风格,或者说是一种规范,其强调HTTP

2020-12-13 22:09:36 5840 6

原创 MybatisPlus QueryWrapper对象封装操作类AbstractWrapper查询条件封装

MybatisPlus QueryWrapper对象封装操作类先把代码拿出来遛一遛public class QueryWrapper<T> extends AbstractWrapper<T, String, QueryWrapper<T>> { /** * 查询字段 */ private String sqlSelect; public QueryWrapper() { this(null);

2020-12-09 22:03:24 9128 7

原创 CAS的特性,乐观锁

CAS(Compare And Swap)指比较并转换,CAS算法包含三个参数 CAS(V,EN),V表示要更新的变量,E表示预期的值,N表示新值,有仅在V值等于E值时,才会将V值设置成N值,如果V跟E值不同,则说明有其他线程做了更新,当前线程什么都不做,最后返回CAS当前V的真实值;CAS操作采用了乐观锁的思想乐观嘛,总是以为自己可以成功完成操作。在多个线程同时使用时使用CAS操作一个变量时,只有一个线程会胜出并成功更新,其余均失败,失败的线程不会被挂起,并且允许再次尝试;CAS即使没有锁,也可以发

2020-12-08 12:33:43 16034 6

原创 JVM 运行时数据区详解

运行时数据区JVM规范定义了程序执行期间所需的某些运行时数据区域。其中一些是在JVM启动时创建的。其他线程是线程本地的,仅在创建线程时创建(在销毁线程时销毁)。这些在下面列出PC(程序计数器)寄存器它在每个线程本地,并且包含该线程当前正在执行的JVM指令的地址栈它是每个线程局部的,并在方法调用期间存储参数,局部变量和返回地址。如果线程需要的堆栈空间超出允许的范围,则会发生StackOverflow(栈溢出)错误。如果堆栈是动态可扩展的,它仍然可以抛出OutOfMemoryError(内存越界)。

2020-12-08 10:49:24 4926 3

原创 多线程你还在用stop()和suspend()吗

stop() 和suspend() 方法为何不推荐使用反对使用stop(),是因为它不安全。它会解除由线程获取的所有锁定,而且如果对象处于一种不连贯状态,那么其他线程能在那种状态下检查和修改它们。结果很难检查出真正的问题所在。suspend() 方法容易发生死锁。调用suspend() 的时候,目标线程会停下来,但却仍然持有在这之前获得的锁定。此时,其他任何线程都不能访问锁定的资源,除非被"挂起" 的线程恢复运行。对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源,就会造成死锁。

2020-12-04 10:38:18 3372 3

原创 关于JAVA多线程的那些东西

多线程有什么用?多核CPU现在的CPU动不动都是四核,八核甚至更多核,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。单核CPU上所谓的"多线程"那是假的多线程,同一时间处理器只会处理一段逻辑,只不过线程之间切换得比较快,看着像多个线程"同时"运行罢了。多核CPU上的多线程才是真正的多线程,它能让你的多段逻辑同时工作,多线程,可以真正发挥出多核CPU的优势来,达到充分利用CPU的目的。防止阻塞从程序运行效率的角度来看,单核CPU不但不会发挥出多线程的优势,反而

2020-12-04 10:17:30 12262 3

原创 Tomcat中类加载机制

Tomcat本身也是一个java项目,因此其也需要被JDK的类加载机制加载,也就必然存在引导类加载器、扩展类加载器和应用(系统)类加载器。CommonClassLoader作为CatalinaClassLoader和SharedClassLoader的parent,而SharedClassLoader又可能存在多个children类加载器WebAppClassLoader,一个WebAppClassLoader实际上就对应一个Web应用,那Web应用就有可能存在Jsp页面,这些Jsp页面最终会转成cla

2020-12-03 20:56:15 3286 3

原创 JVM面试Java 中会存在内存泄漏吗,请简单描述

Java 中会存在内存泄漏吗,请简单描述所谓内存泄露就是指一个不再被程序使用的对象或变量一直被占据在内存中。Java 中有垃圾回收机制,它可以保证一对象不再被引用的时候,即对象变成了孤儿的时候,对象将自动被垃圾回收器从内存中清除掉。由于Java 使用有向图的方式进行垃圾回收管理,可以消除引用循环的问题,例如有两个对象,相互引用,只要它们和根进程不可达的,那么GC 也是可以回收它们的,例如下面的代码可以看到这种情况的内存回收:import java.io.IOException;publicclassG

2020-12-03 20:39:58 8157 1

原创 JavaWeb时隔一年在看

这几天搞着微服务的时候,突然发现javaweb基础开始模糊,所以回去重温的往日快乐时光;以下只是博主个人学习总结,如有不当,敬请指正;一 ,原始时代(Servlet出现之前)在上世纪90年代,因为nternet和浏览器的飞速发展,使得基于浏览器的B/S模式随之火爆发展起来。最初,用户使用浏览器向WEB服务器发送的请求都是请求静态的资源,比如html、css等。CGI阶段,有兴趣可以去了解,CGI全称是通用网关接口,是一种Web规范,几乎是所有的语言都能够写CGI,甚至Shell;这一阶段,服

2020-12-02 19:50:16 21045 8

原创 Nacos入门

从 Github 上下载源码方式git clone https://github.com/alibaba/nacos.gitNacos中文文档https://nacos.io/zh-cn/docs/architecture.html基本架构及概念逻辑架构及其组件介绍Nacos-SDK 类视图Nacos Spring开发入门添加依赖<dependency> <groupId>com.alibaba.boot</groupId>

2020-12-01 09:57:26 2608 1

原创 Listener组件【JavaWeb组件】

Listener组件:Listener监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext、HttpSession和ServletRequest这三大域对象的创建、销毁事件以及监听这些域对象中的属性发生修改的事件。Servlet规范针对这三个对象上的操作,又把多种类型的监听器划分为三种类型:域对象的生命周期监听:监听域对象自身的创建和销毁。域对象的属性监听:监听域对象中属性的增加和删除。感知监听(都与HttpSession域对象有关):监听

2020-11-27 14:22:10 2248 1

原创 Fliter过滤,拦截请求【JavaWeb组件】

Filter组件JavaWeb三大组件包括,Servlet组件(接受请求,响应数据),Filter组件(过滤,拦截请求),Listener组件(监听器),这三大组件构成了javaWeb核心内容,也是作为后端来说,JavaWeb最重要的内容。什么是Filter组件?Fileter又被通俗称为过滤网,它是为了把不符合规则的请求和加密文件在中途拦截或修改。从上面的图,可以看出一个Filter的工作流程:一个http请求过来之后首先进入filter,执行相关业务逻辑若判定通行,则进入Servl

2020-11-27 13:41:12 2091 1

原创 MybatisPlus定义统一返回结果对象(json)

统一返回数据格式项目中我们会将响应封装成json返回,一般我们会将所有接口的数据格式统一, 使前端(iOS Android, Web)对数据的操作更一致、轻松。一般情况下,统一返回数据格式没有固定的格式,只要能描述清楚返回的数据状态以及要返回的具体数据就可以。但是一般会包含状态码、返回消息、数据这几部分内容例如,我们的系统要求返回的基本数据格式如下:列表:{ "success": true, "code": 20000, "message": "成功", "data": {

2020-11-20 17:33:30 8469 3

原创 Mybatis Plus- BaseMapper-IService-ServiceImpl源码分析

BaseMapper接口继承该接口后,无需编写 mapper.xml 文件,即可获得CRUD功能public interface BaseMapper<T> { /** * <p> * 插入一条记录 * </p> * * @param entity 实体对象 */ int insert(T entity); /** * <p> * 根据 ID 删除

2020-11-20 11:14:35 9561 2

原创 MyBatisPlus主键策略、UUID、Sequence

MyBatisPlus主键策略、UUID、Sequence,默认雪花算法,指定主键使用数据库ID自增策略AUTO(数据库 ID 自增) 对于像 MySQL 这样的支持主键自动递增的数据库,我们可以使用 IdType.AUTO 策略。 INPUT(insert 前自行 set 主键值) (1)针对有序列的数据库:比如 Oracle,SQLServer等,当需要建立一个自增字段时,需要用到 sequence. Mybatis-Plus 已经定义好了常见的数据库主键序列;

2020-11-15 11:54:04 10049 1

原创 Mysql 分布式主键增长策略

主键增长策略自动增长 AUTO INCREMENT不设置主键的增长起点(默认1开始)CREATE TABLE `t` ( `id` int(11) NOT NULL AUTO_INCREMENT, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `c` (`c`)) ENGINE=InnoDB;设置主键的增长起点(自己给定一个初始值)CREATE TAB

2020-11-15 10:31:21 6855 2

原创 设计模式之面向对象设计原则

单一职责模式一个对象应该包含单一的职责,并且该职责被完整地封装在一个类中;最简单的面向对象设计原则,它用于控制类的粒度大小;单一职责原则是实现高内聚,低耦合的指导方针。它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并将其分离;如原始类:CustomerDataChart 类方法中包含 { getconnection(); //用于连接数据库 findAllcustomer(); //查询所有用户 createChart(); //用于创建图表 }使用单

2020-11-14 14:54:30 3852 6

原创 Hystrix bashboard监控一直报ping

Hystrix bashboard监控pom文件 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> <version>1.4.7.RELEASE</version>

2020-11-12 17:33:01 2415 2

原创 Hystrix 服务熔断和降级

HystrixHystrix是一个用于分布式系统的延迟和容错的开源库。在分布式系统里,许多依赖不可避免的调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整个服务失败,避免级联故障,以提高分布式系统的弹性。“断路器”本身是一种开关装置,当某个服务单元发生故障监控(类似熔断保险丝),向调用方法返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方法无法处理的异常,这样就保证了服务调用方的线程不会被长时间、不必要地占用,从而避免了故障

2020-11-11 22:47:49 1655

原创 Ribbon和Feign 服务构建区别

feign和ribbon是SpringCloud的Netflix中提供的两个实现软负载均衡的组件,Ribbon和Feign都是用于调用其他服务的,方式不同。Feign则是在Ribbon的基础上进行了一次改进,采用接口的方式。pom文件<!--ribbon--> <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-ribbon --> &l.

2020-11-10 23:39:41 1674 3

原创 Eureka 服务构建

Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装,它实现了服务治理的功能;1、Eureka Server是服务端,负责管理各各微服务结点的信息和状态。2、在微服务上部署Eureka Client程序,远程访问Eureka Server将自己注册在Eureka Server。3、微服务需要调用另一个微服务时从Eureka Server中获取服务调用地址,进行远程调用。简单构建springcloud-eureka项目父工程pom <dependency&

2020-11-10 23:06:33 1457

原创 RestTemplate详解

简述RestTemplate是Spring用于同步client端的核心类,简化了与http服务的通信,并满足RestFul原则,程序代码可以给它提供URL,并提取结果。默认情况下,RestTemplate默认依赖jdk的HTTP连接工具。当然你也可以通过setRequestFactory属性切换到不同的HTTP源,比如Apache HttpComponents、Netty和OkHttp。RestTemplate能大幅简化了提交表单数据的难度,并且附带了自动转换JSON数据的功能;RestTe

2020-11-09 21:20:31 2572 1

原创 详解@Configuration注解

@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。

2020-10-30 21:04:07 41255 5

原创 JVM面试 类加载机制

JVM的类加载机制一、JVM的运行机制JVM 是用于运行Java字节码的虚拟机,包括一套字节码指令集,一组程序寄存器,一个虚拟机栈,一个虚拟机堆,一个方法区和一个垃圾回收器。JVM运行在操作系统之上,不与硬件设备直接交互;Java程序具体运行过程:JAVA源文件被编译器编译成字节码文件JVM将字节码文件编译成相应操作系统的机器码机器码调用相应操作系统的本地方法库执行相应的方法二、JVM的类加载机制1.JVM的类加载阶段加载验证准备解析初始化在类初始化完成后就可以使用该

2020-10-28 20:13:38 7269 9

原创 Servlet实现共享数据JavaWeb组件

Servlet JavaWeb三大组件包括,Servlet组件(接受请求,响应数据),Filter组件(过滤,拦截请求),Listener组件(监听器),这三大组件构成了javaWeb核心内容,也是作为后端来说,JavaWeb最重要的内容。Servlet组件:什么是Servlet组件:处理请求和发送响应的过程是由一种叫做Servlet的程序来完成的,并且Servlet是为了解决实现动态页面而衍生的东西。整个过程为:客户端发送请求至服务器端;服务器将请求信息发送至 Servlet;Servle

2020-10-27 10:34:35 6123 4

原创 SpringMvc基础源码分析

SpringMvc咱们开发服务器端程序,一般都基于两种形式,一种C/S架构程序,一种B/S架构程序 使用Java语言基本上都是开发B/S架构的程序,B/S架构又分成了三层架构三层架构表现层:WEB层,用来和客户端进行数据交互的。表现层一般会采用MVC的设计模型业务层:处理公司具体的业务逻辑的持久层:用来操作数据库的MVC模型 1. MVC全名是Model View Controller 模型视图控制器,每个部分各司其职。Model:数据模型,JavaBean的类,用来进行数据封装。View

2020-10-27 00:33:40 5711 5

原创 Mybatis源码基础解析

Mybatis源码解析mapper代理对象的生成,你有想过吗,我们讲到了mybatis操作数据库的流程:先创建SqlSessionFactory,然后创建SqlSession,然后再创建获取mapper代理对象,最后利用mapper代理对象完成数据库的操作;Mapper代理对象的创建,利用的是JDK的动态代理,InvocationHandler是MapperProxy,后续Mapper代理对象方法的执行都会先经过MapperProxy的invoke方法。但是,此时SqlSessionFactor

2020-10-27 00:12:41 4753 4

原创 通俗易懂Spring源码分析

spring 的优势方便解耦,简化开发通过 Spring 提供的 IoC 容器,可以将对象间的依赖关系交由 Spring 进行控制,避免硬编码所造成的过度程序耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。AOP 编程的支持通过 Spring 的 AOP 功能,方便进行面向切面的编程,许多不容易用传统 OOP 实现的功能可以通过 AOP 轻松应付。声明式事务的支持.可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务;

2020-10-26 23:49:55 12001 7

情人节源码,烟花特效.zip

程序员情人节代码烟花特效,和雪花

2021-02-08

发卡网(全解无后门).zip

发卡网(全解无后门) 源码直接用,已经修改。个人自动发卡系统源码供应平台,程序集成免签约即时到账支付接口,资金不中转直接入收款账户更加安全。持续更新不断完善用户体验...

2020-10-27

Sublime Text 3 中文优化版.zip

Sublime Text是一个代码编辑器,也是HTML和散文先进的文本编辑器。Sublime Text 具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

2020-10-27

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除