自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (1)
  • 收藏
  • 关注

转载 Spring框架---动态代理(七)

1、jdk的动态代理​ 动态代理与静态代理的区别此处不再赘述,大家可以看马老师的设计模式视频,我们主要讲一下动态代理的实现原理,说明白原理的话肯定是要看源码了,大家不要慌,干就完了!!!​ 其实在使用动态代理的时候最最核心的就是Proxy.newProxyInstance(loader, interfaces, h);废话不多说,直接干源码。动态代理的样例代码:Calculator.javapackage com.mashibing;public interface Calcula

2021-11-09 20:21:13 244

转载 Spring框架---Spring原理讲解(六)

1、什么是Spring框架,Spring框架主要包含哪些模块​ Spring是一个开源框架,Spring是一个轻量级的Java 开发框架。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spr

2021-11-09 20:15:18 219

转载 Spring框架--Spring AOP的应用配置(五)

1、Spring JdbcTemplate​ 在spring中为了更加方便的操作JDBC,在JDBC的基础之上定义了一个抽象层,此设计的目的是为不同类型的JDBC操作提供模板方法,每个模板方法都能控制整个过程,并允许覆盖过程中的特定任务,通过这种方式,可以尽可能保留灵活性,将数据库存取的工作量讲到最低。1、配置并测试数据源pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.a

2021-11-09 20:10:59 209

转载 Spring框架---- AOP介绍与使用(四)

AOP:Aspect Oriented Programming 面向切面编程OOP:Object Oriented Programming 面向对象编程​ 面向切面编程:基于OOP基础之上新的编程思想,OOP面向的主要对象是类,而AOP面向的主要对象是切面,在处理日志、安全管理、事务管理等方面有非常重要的作用。AOP是Spring中重要的核心点,虽然IOC容器没有依赖AOP,但是AOP提供了非常强大的功能,用来对IOC做补充。通俗点说的话就是在程序运行期间,将某段代码动态切入到指定方法的指定位置进行

2021-11-07 07:45:00 141

转载 spring框架 ----IOC的注解应用(三)

03SpringIOC的注解应用使用注解注入,需要定义扫描包​ 在之前的项目中,我们都是通过xml文件进行bean或者某些属性的赋值,其实还有另外一种注解的方式,在企业开发中使用的很多,在bean上添加注解,可以快速的将bean注册到ioc容器。1、使用注解的方式注册bean到IOC容器中applicationContext.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.sprin

2021-11-06 17:10:41 58

翻译 spring框架---IOC基本使用(二)

通过前面的介绍我们已经知道了Spring中非常重要的一个特性就是IOC,下面我们将要来看一下如何使用IOC容器,帮助大家更好的体会spring的优势。1、spring_helloworld(1)使用手动加载jar包的方式实现,分为三个步骤,现在几乎不用 导包:导入这五个包即可 commons-logging-1.2.jar spring-beans-5.2.3.RELEASE.jar spring-context-5.2.3.RELEASE.jar spring-core-5.2.3.RE

2021-11-06 17:07:15 94

原创 spring框架 ----spring初识(一)

1、框架​ 框架就是一些类和接口的集合,通过这些类和接口协调来完成一系列的程序实现。JAVA框架可以分为三层:表示层,业务层和物理层。框架又叫做开发中的半成品,它不能提供整个WEB应用程序的所有东西,但是有了框架,我们就可以集中精力进行业务逻辑的开发而不用去关心它的技术实现以及一些辅助的业务逻辑。大家熟知的Structs和Spring就是表示层和业务层框架的强力代表。(说的太官方了)​ 人话:​ 框架就是某些个人或者组织定义了一系列的类或者接口,提前定义好了一些实现,用户可以在这些类和接口的基础

2021-11-06 17:03:20 235

原创 三、SpringBoot配置fastjon

配置fastjon(Json处理工具包)FastJson包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快;支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;第一种方法:第一步:引入依赖:<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId&gt

2021-10-19 22:32:40 944

原创 二、SpringBoot:选用 SLF4j日志门面和logback日志实现记录日志

日志用什么日志实现,就用这个日志实现的配置;SpringBoot:选用 SLF4j日志门面和logback日志实现记录日志;能自动适配所有的日志日志门面: SLF4J (Simple Logging Facade for Java);是所有日志的抽象层日志实现:Logback; SpringBoot底层是Spring框架,Spring框架默认是用JCL(Jakarta Commons Logging),这个日志实现会排除掉,用中间包替换指向slf4jSLF4j使用:htt..

2021-10-19 22:23:43 279 1

转载 XStream内存泄露和性能问题

案例一:一、事件:支付系统突然出现频繁的超时,查看error日志没有什么发现,凭经验去gc日志瞅一眼,有频繁的full gc,而且每两次gc,老年代会有80%的内存无法被回收,基本确认是系统出现内存泄漏,导致老年代空间被占满,频繁触发full gc,full gc 触发stop the word,导致业务接口超时。二、分析:2.1、dump内存数据#netstat -tunlp|grep 端口号#jmap -dump:live,file=dump.file pid2.2、解析内存数

2021-10-14 23:22:31 2063

转载 UML统一建模语言

UML统一建模语言--面向对象的建模语言UML(Unified Modeling Language,统一建模语言)是用来设计软件蓝图的可视化建模语言,是一种为面向对象系统的产品进行说明、可视化和编制文档的标准语言,独立于任何一种具体的程序设计语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。基本构件UML 建模的核心是模型,模型是现实的简化、真实系统的抽象。UML 提供了系统的设计蓝图。当给软件系统建模时,需要采用通用的符号语言,这种描述模型所使用的语言被称为建模语言。在 U

2021-09-12 16:59:52 134

转载 Redis 分布式锁

目前Java操作redis的客户端有jedis跟lettuce。 在springboot1.x系列中,其中使用的是jedis,但是到了springboot2.x其中使用的是Lettuce。 因为我们的版本是springboot2.x系列,所以今天使用的是Lettuce。jedis跟lettuce的区别:Lettuce 和 Jedis 的定位都是Redis的client,所以他们当然可以直接连接redis server。 Jedis在实现上是直接连接的redis server,如果在多线程环境.

2021-09-08 06:52:21 168

原创 JAVA基础语法(一)

计算机包括硬件(hardware)和软件(software)两部分。硬件包括计算机中可以看得见的物理部分。而软件提供看不见的指令。这些指令控制硬件并且使得硬件完成特定的任务。

2021-06-19 17:17:10 229

原创 JDBC核心技术

:JDBC概述

2021-06-15 06:59:39 1312

原创 MYSQL基础(一)

概念:DB 数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。 DBMS 数据库管理系统(Database Management System)。数据库是通过DBMS创 建和操作的容器 SQL 结构化查询语言(Structure Query Language):专门用来与数据库通信的语 言。SQL语言分类:1、DML(Data Manipulation Language):数据操纵语句,用于添 加、删除、修改、查询数...

2021-05-17 07:29:13 66

原创 IDEA常用插件(二)

Lomboklombok的注解:@Data 注解在类上:提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法@Setter :注解在属性上;为属性提供 setting 方法@Getter :注解在属性上;为属性提供 getting 方法@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象@NoArgsConstructor :注解在类上;为类提供一个无参的构造...

2021-05-16 07:35:13 732

转载 WebService应用通信

WebServiceWebService简介Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。简单的说,WebService就是一种跨编程语言和跨操作系统平台的远程调用技术。所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然。跨操作系统平台则是指服

2021-05-13 06:51:59 568

转载 SpringBoot整合WebService服务

11

2021-05-09 17:27:50 232

转载 第 2 节 SpringBoot的设计初衷与核心功能

1 SpringBoot 的设计初衷1.1 应用迭代快​ 为了适应市场变化的需求,应用的更新迭代速度越来越快,所以如果还是基于SpringMVC 和 Tomcat 这套应用开发和部署方案,则会由于需要进行大量配置而影响开发效率,拖慢项目的开发进度。1.2 Spring 应用配置方式固定​ Spring 应用一般包括应用自身的配置和对第三方功能 jar 包依赖的配置,而这些配置的模式一般是固定的。​ 首先是基于 Spring 实现的 Web 应用肯定需要配置对 SpringMVC 框架和 Jav

2021-03-21 17:24:44 166

转载 第 1 节 Java Web应用开发简介与痛点剖析

第 1 节 Java Web应用开发简介与痛点剖析1 引导语​ 该专栏主要是讲解使用 SpringBoot 框架开发 Java 企业级 Web 应用的相关用法和原理,所以在进入 SpringBoot 框架的讲解之前,首先介绍一下 Java web 开发的相关原理,以便读者在之后能更好地理解基于 SpringBoot 开发 Java 企业级 Web 应用的相关用法和原理。2 基于 Servlet 组件的 Java Web 应用开发2.1 企业现状​ Java 语言是目前最流行的企业级 Web 应

2021-03-21 17:23:32 241

转载 SpringbootHTTP请求方式----RestTemplate

RestTemplate:RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。我之前的HTTP开发是用apache的HttpClient开发,代码复杂,还得操心资源回收等。代码很复杂,冗余代码多;简述:是Spring用于同步client端的核心类,简化了与http服务的通信,并满足RestFul原则,程序代码可以给它提供URL,并提取结果。默认情况下,RestTempl

2020-09-13 17:47:05 487

转载 开放API接口签名验证(web和app)

接口安全问题请求身份是否合法 请求参数是否被篡改 请求是否唯一 对于敏感的api接口,需使用https协议AccessKey&SecretKey (开放平台)请求身份:为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。防止篡改:参数签名按照请求参数名的字母升序排列非空请求参数(包含AccessKey)(ASCII码排序),使用URL键值对的格式(即key1=value1&...

2020-09-13 13:56:09 822

原创 开发辅助小工具

MobaXterm 使用MobaXterm是一个全功能的终端软件。支持SSH连接,支持FTP、串口等协议。官网提供MobaXterm的免费开源版“Home Edition”下载(http://mobaxterm.mobatek.net/download.html), 免费开源版又分便捷版(解压即用)和安装版(需要一步步安装)。Utool:https://www.u.tools/RedisDesktopManager:https://github.com/uglide/RedisDes

2020-09-13 13:11:48 92

原创 Vue入门

Vue就是只需要关注视图显示和数据,不需要关心其中的过程,我们那个项目还是用的jquery,Vue我平时有学习。2.Node和NPM前面说过,NPM是Node提供的模块管理工具,可以非常方便的下载安装很多前端框架,包括Jquery、AngularJS、VueJs都有。为了后面学习方便,我们先安装node及NPM工具。2.1.下载Node.js下载地址:https://n...

2020-08-30 11:28:48 120

原创 Spring之AOP解析应用

AOP应用场景:需求1:日志:在程序的执行过程中追踪所发生的的活动?需求2:数据验证:希望程序只能处理正数的运算?需求3:存储读取数据的加解密:在程序存储的敏感的数据,存储时加密,读取时解密?使用场景: 日志记录,性能统计,安全控制,事务处理, 异常处理,数据加解密 等等首先日志、数据验证、加解密这些代码不应该写在需求中,这样代码重复混乱臃肿不灵活,也会带来很大的工作量。比...

2020-05-30 21:21:55 384

原创 MyBatis-Plus

官网:https://mp.baomidou.com/guide/install.html#release第一步:添加依赖:<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId>...

2020-05-16 11:17:51 327

原创 策略模式

工厂+策略模式策略模式的使用一般不是独立使用的,可能要结合单例、工厂、享元等这些方式一起来实现一段优雅的业务逻辑,一个对象的行为经常要变化,扩展性要求比较高,这种时候可以考虑使用策略模式,来抽象行为,工厂+策略模式(用lambda来简化代码)促销业务实现:不同的促销形式/** * @author jimmy * 策略的函数式接口 */@FunctionalInterfacepublic interface PromotionStrategy { void do...

2020-05-13 16:20:19 193

翻译 后端架构师技术图谱

https://www.carryingcoder.com/2018/10/19/%E5%90%8E%E7%AB%AF%E6%9E%B6%E6%9E%84%E5%B8%88%E6%8A%80%E6%9C%AF%E5%9B%BE%E8%B0%B1/数据结构队列《java队列——queue详细分析》 非阻塞队列:ConcurrentLinkedQueue(无界线程安全),采用CAS机制...

2020-05-09 11:47:46 1659

转载 Lambda表达式

Lambda表达式在是JDK8中才引入的,JDK8以后,源码中开始应用Lambda表达式,学习它对以后钻研源码非常重要。Lambda表达式是函数式编程思想的一种体现;什么是Lambda:Lambda表达式也被称为箭头函数、匿名函数、闭包 Lambda表达式体现的是轻量级函数式编程思想 ‘->’符号式Lambda表达式核心操作符号,符号左侧是操作参数。符号右侧是操作表达式 ...

2020-05-09 11:45:24 112

原创 Git版本控制工具

Git和SVN版本控制区别SVN与Git的区别:Git是分布式的,SVN不是分布式的好处是:每个客户端克隆了中央仓库后,就像一个新的“中央仓库”Git github 码云 代码放到这些网上2、Git有本地仓库,SVN没有,本地库的好处有哪些呢:1)断网提交2)跟踪版本,查找历史记录3)本地回滚...

2020-05-07 13:22:02 166

原创 了解多线程(一)

小贴士:进程和线程的区别:每个进程是一个应用程序,都有独立的内存空间,多进程的作用不是提高执行速度,而是提高 CPU 的使用率。 同一个进程中的线程共享其进程中的内存和资源(共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的,一个线程一个栈。),多线程不是为了提高执行速度,而是提高应用程序的使用率.感觉多个线程在同时并发执行;新建:采用 new 语句创建完成就...

2020-04-05 18:57:13 104

原创 虚拟机之自动内存管理机制(一)

Java是自动管理内存,内存是动态分配的,不容易出现内存溢出(OutOfMemoryError) 和 堆栈溢出(StackOverflowError) ;而C和C++的内存开发者是有所有权的;运行时内存分配:1.程序计数器(Program Counter Register)(线程私有):逻辑执行控制;1. 可当前线程所执行的字节码的行号指示器。2 . 在Java虚拟机的概念模...

2020-04-05 18:46:09 218

转载 java并发之可见性与原子性:Syncronized和volatile

在说明Java多线程内存可见性之前,先来简单了解一下Java内存模型。 (1)Java所有变量都存储在主内存中 (2)每个线程都有自己独立的工作内存,里面保存该线程的使用到的变量副本(该副本就是主内存中该变量的一份拷贝) (1)线程对共享变量的所有操作都必须在自己的工作内存中进行,不能直接在主内存中读写 (2)不同线程之间无法直接访问其他线程工作内存中的变量...

2020-04-04 11:43:22 110

转载 前后端API交互如何保证数据安全性?

前言前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来进行业务交互。网页或者app,只要抓下包就可以清楚的知道这个请求获取到的数据,这样的接口对爬虫工程师来说是一种福音,要抓你的数据简直轻而易举。数据的安全性非常重要,特别是用户...

2020-03-19 13:58:51 206

原创 接口请求和响应加密

在日常开发中,有时候我们经常需要和第三方接口打交道,有时候是我们调用别人的第三方接口,有时候是别人在调用我们的第三方接口,那么为了调用接口的安全性,一般都会对传输的数据进行加密操作.我们与客户端的接口交互中,为了更高的安全性,我们可能需要对接口加密(请求参数加密,服务端解密)、返回信息加密(服务端加密,客户端解密)web端加密可通过js前置知识:基于RequestBodyAdvic...

2020-03-19 13:57:08 2413

原创 Spring Boot使用过滤器Filter

过滤器是对数据进行过滤,预处理过程,当我们访问网站时,有时候会发布一些敏感信息,发完以后有的会用*替代,还有就是登陆权限控制等,一个资源,没有经过授权,肯定是不能让用户随便访问的,这个时候,也可以用到过滤器。过滤器的功能还有很多,例如实现URL级别的权限控制、压缩响应信息、编码格式等等。过滤器依赖servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤。操作:1.在pom.x...

2020-02-23 09:12:34 111

转载 全局异常处理

我们在做Web应用的时候,请求处理过程中发生错误异常是一个非常常见的情况,但是异常的处理方式和放回的异常内容并没有做一个统一的处理。在现在这种前后端分离的时代,不论响应成功还是失败的数据格式都需要保持一致。SpringBoot全局异常处理:环境要求JDK:1.8SpringBoot:1.5.17.RELEASESpringBoot中通过@ControllerAdvice和@Ex...

2019-12-28 16:10:46 546

转载 正则表达式回溯引发CPU飙到100%

正则表达式在线测试平台:https://regex101.com/近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“-”,“_”等看到这个要求的时候,自然而然地想到了正则表达式。于是就有了下面的表达式(写的比较龊):^([A-Za-z0-9._()&...

2019-12-15 16:19:50 475

原创 SQL语法(MYSQL)

按条件统计SELECT user_id , SUM( IF( order_info.status = 'dead', 1, 0) )FROM order_infoGROUP BY user_id;group_concat( user_id )拼接idselect group_concat( user_id ) as userIds from user_distributi...

2019-12-08 18:03:38 624

转载 前端读取Excel报表文件

在实际开发中,经常会遇到导入Excel文件的需求,有的产品人想法更多,想要在前端直接判断文件内容格式是否正确,必填项是否已填写依据HTML5的FileReader,可以使用新的API打开本地文件(参考这篇文章)FileReader.readAsBinaryString(Blob|File) FileReader.readAsText(Blob|File, opt_encoding)...

2019-11-23 19:47:07 303

Xshell6软件工具

连接服务器。 Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。 Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。除此之外,其还有丰富的外观配色方案以及样式选择。

2019-03-04

空空如也

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

TA关注的人

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