- 博客(132)
- 资源 (1)
- 收藏
- 关注
转载 Spring框架---动态代理(七)
1、jdk的动态代理 动态代理与静态代理的区别此处不再赘述,大家可以看马老师的设计模式视频,我们主要讲一下动态代理的实现原理,说明白原理的话肯定是要看源码了,大家不要慌,干就完了!!! 其实在使用动态代理的时候最最核心的就是Proxy.newProxyInstance(loader, interfaces, h);废话不多说,直接干源码。动态代理的样例代码:Calculator.javapackage com.mashibing;public interface Calcula
2021-11-09 20:21:13
311
转载 Spring框架---Spring原理讲解(六)
1、什么是Spring框架,Spring框架主要包含哪些模块 Spring是一个开源框架,Spring是一个轻量级的Java 开发框架。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。Spr
2021-11-09 20:15:18
291
转载 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
288
转载 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
198
转载 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
111
翻译 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
149
原创 spring框架 ----spring初识(一)
1、框架 框架就是一些类和接口的集合,通过这些类和接口协调来完成一系列的程序实现。JAVA框架可以分为三层:表示层,业务层和物理层。框架又叫做开发中的半成品,它不能提供整个WEB应用程序的所有东西,但是有了框架,我们就可以集中精力进行业务逻辑的开发而不用去关心它的技术实现以及一些辅助的业务逻辑。大家熟知的Structs和Spring就是表示层和业务层框架的强力代表。(说的太官方了) 人话: 框架就是某些个人或者组织定义了一系列的类或者接口,提前定义好了一些实现,用户可以在这些类和接口的基础
2021-11-06 17:03:20
320
原创 三、SpringBoot配置fastjon
配置fastjon(Json处理工具包)FastJson包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快;支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;第一种方法:第一步:引入依赖:<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId>
2021-10-19 22:32:40
1062
原创 二、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
379
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
2992
1
转载 UML统一建模语言
UML统一建模语言--面向对象的建模语言UML(Unified Modeling Language,统一建模语言)是用来设计软件蓝图的可视化建模语言,是一种为面向对象系统的产品进行说明、可视化和编制文档的标准语言,独立于任何一种具体的程序设计语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。基本构件UML 建模的核心是模型,模型是现实的简化、真实系统的抽象。UML 提供了系统的设计蓝图。当给软件系统建模时,需要采用通用的符号语言,这种描述模型所使用的语言被称为建模语言。在 U
2021-09-12 16:59:52
208
转载 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
258
原创 JAVA基础语法(一)
计算机包括硬件(hardware)和软件(software)两部分。硬件包括计算机中可以看得见的物理部分。而软件提供看不见的指令。这些指令控制硬件并且使得硬件完成特定的任务。
2021-06-19 17:17:10
309
原创 MYSQL基础(一)
概念:DB 数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。 DBMS 数据库管理系统(Database Management System)。数据库是通过DBMS创 建和操作的容器 SQL 结构化查询语言(Structure Query Language):专门用来与数据库通信的语 言。SQL语言分类:1、DML(Data Manipulation Language):数据操纵语句,用于添 加、删除、修改、查询数...
2021-05-17 07:29:13
121
原创 IDEA常用插件(二)
Lomboklombok的注解:@Data 注解在类上:提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法@Setter :注解在属性上;为属性提供 setting 方法@Getter :注解在属性上;为属性提供 getting 方法@Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象@NoArgsConstructor :注解在类上;为类提供一个无参的构造...
2021-05-16 07:35:13
930
转载 WebService应用通信
WebServiceWebService简介Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。简单的说,WebService就是一种跨编程语言和跨操作系统平台的远程调用技术。所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然。跨操作系统平台则是指服
2021-05-13 06:51:59
679
转载 第 2 节 SpringBoot的设计初衷与核心功能
1 SpringBoot 的设计初衷1.1 应用迭代快 为了适应市场变化的需求,应用的更新迭代速度越来越快,所以如果还是基于SpringMVC 和 Tomcat 这套应用开发和部署方案,则会由于需要进行大量配置而影响开发效率,拖慢项目的开发进度。1.2 Spring 应用配置方式固定 Spring 应用一般包括应用自身的配置和对第三方功能 jar 包依赖的配置,而这些配置的模式一般是固定的。 首先是基于 Spring 实现的 Web 应用肯定需要配置对 SpringMVC 框架和 Jav
2021-03-21 17:24:44
235
转载 第 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
333
转载 SpringbootHTTP请求方式----RestTemplate
RestTemplate:RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。我之前的HTTP开发是用apache的HttpClient开发,代码复杂,还得操心资源回收等。代码很复杂,冗余代码多;简述:是Spring用于同步client端的核心类,简化了与http服务的通信,并满足RestFul原则,程序代码可以给它提供URL,并提取结果。默认情况下,RestTempl
2020-09-13 17:47:05
620
转载 开放API接口签名验证(web和app)
接口安全问题请求身份是否合法 请求参数是否被篡改 请求是否唯一 对于敏感的api接口,需使用https协议AccessKey&SecretKey (开放平台)请求身份:为开发者分配AccessKey(开发者标识,确保唯一)和SecretKey(用于接口加密,确保不易被穷举,生成算法不易被猜测)。防止篡改:参数签名按照请求参数名的字母升序排列非空请求参数(包含AccessKey)(ASCII码排序),使用URL键值对的格式(即key1=value1&...
2020-09-13 13:56:09
907
原创 开发辅助小工具
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
133
原创 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
159
原创 Spring之AOP解析应用
AOP应用场景:需求1:日志:在程序的执行过程中追踪所发生的的活动?需求2:数据验证:希望程序只能处理正数的运算?需求3:存储读取数据的加解密:在程序存储的敏感的数据,存储时加密,读取时解密?使用场景: 日志记录,性能统计,安全控制,事务处理, 异常处理,数据加解密 等等首先日志、数据验证、加解密这些代码不应该写在需求中,这样代码重复混乱臃肿不灵活,也会带来很大的工作量。比...
2020-05-30 21:21:55
546
原创 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
362
原创 策略模式
工厂+策略模式策略模式的使用一般不是独立使用的,可能要结合单例、工厂、享元等这些方式一起来实现一段优雅的业务逻辑,一个对象的行为经常要变化,扩展性要求比较高,这种时候可以考虑使用策略模式,来抽象行为,工厂+策略模式(用lambda来简化代码)促销业务实现:不同的促销形式/** * @author jimmy * 策略的函数式接口 */@FunctionalInterfacepublic interface PromotionStrategy { void do...
2020-05-13 16:20:19
246
翻译 后端架构师技术图谱
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
1728
转载 Lambda表达式
Lambda表达式在是JDK8中才引入的,JDK8以后,源码中开始应用Lambda表达式,学习它对以后钻研源码非常重要。Lambda表达式是函数式编程思想的一种体现;什么是Lambda:Lambda表达式也被称为箭头函数、匿名函数、闭包 Lambda表达式体现的是轻量级函数式编程思想 ‘->’符号式Lambda表达式核心操作符号,符号左侧是操作参数。符号右侧是操作表达式 ...
2020-05-09 11:45:24
189
原创 Git版本控制工具
Git和SVN版本控制区别SVN与Git的区别:Git是分布式的,SVN不是分布式的好处是:每个客户端克隆了中央仓库后,就像一个新的“中央仓库”Git github 码云 代码放到这些网上2、Git有本地仓库,SVN没有,本地库的好处有哪些呢:1)断网提交2)跟踪版本,查找历史记录3)本地回滚...
2020-05-07 13:22:02
212
原创 了解多线程(一)
小贴士:进程和线程的区别:每个进程是一个应用程序,都有独立的内存空间,多进程的作用不是提高执行速度,而是提高 CPU 的使用率。 同一个进程中的线程共享其进程中的内存和资源(共享的内存是堆内存和方法区内存,栈内存不共享,每个线程有自己的,一个线程一个栈。),多线程不是为了提高执行速度,而是提高应用程序的使用率.感觉多个线程在同时并发执行;新建:采用 new 语句创建完成就...
2020-04-05 18:57:13
152
原创 虚拟机之自动内存管理机制(一)
Java是自动管理内存,内存是动态分配的,不容易出现内存溢出(OutOfMemoryError) 和 堆栈溢出(StackOverflowError) ;而C和C++的内存开发者是有所有权的;运行时内存分配:1.程序计数器(Program Counter Register)(线程私有):逻辑执行控制;1. 可当前线程所执行的字节码的行号指示器。2 . 在Java虚拟机的概念模...
2020-04-05 18:46:09
288
转载 java并发之可见性与原子性:Syncronized和volatile
在说明Java多线程内存可见性之前,先来简单了解一下Java内存模型。 (1)Java所有变量都存储在主内存中 (2)每个线程都有自己独立的工作内存,里面保存该线程的使用到的变量副本(该副本就是主内存中该变量的一份拷贝) (1)线程对共享变量的所有操作都必须在自己的工作内存中进行,不能直接在主内存中读写 (2)不同线程之间无法直接访问其他线程工作内存中的变量...
2020-04-04 11:43:22
163
转载 前后端API交互如何保证数据安全性?
前言前后端分离的开发方式,我们以接口为标准来进行推动,定义好接口,各自开发自己的功能,最后进行联调整合。无论是开发原生的APP还是webapp还是PC端的软件,只要是前后端分离的模式,就避免不了调用后端提供的接口来进行业务交互。网页或者app,只要抓下包就可以清楚的知道这个请求获取到的数据,这样的接口对爬虫工程师来说是一种福音,要抓你的数据简直轻而易举。数据的安全性非常重要,特别是用户...
2020-03-19 13:58:51
240
原创 接口请求和响应加密
在日常开发中,有时候我们经常需要和第三方接口打交道,有时候是我们调用别人的第三方接口,有时候是别人在调用我们的第三方接口,那么为了调用接口的安全性,一般都会对传输的数据进行加密操作.我们与客户端的接口交互中,为了更高的安全性,我们可能需要对接口加密(请求参数加密,服务端解密)、返回信息加密(服务端加密,客户端解密)web端加密可通过js前置知识:基于RequestBodyAdvic...
2020-03-19 13:57:08
2741
原创 Spring Boot使用过滤器Filter
过滤器是对数据进行过滤,预处理过程,当我们访问网站时,有时候会发布一些敏感信息,发完以后有的会用*替代,还有就是登陆权限控制等,一个资源,没有经过授权,肯定是不能让用户随便访问的,这个时候,也可以用到过滤器。过滤器的功能还有很多,例如实现URL级别的权限控制、压缩响应信息、编码格式等等。过滤器依赖servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤。操作:1.在pom.x...
2020-02-23 09:12:34
148
转载 全局异常处理
我们在做Web应用的时候,请求处理过程中发生错误异常是一个非常常见的情况,但是异常的处理方式和放回的异常内容并没有做一个统一的处理。在现在这种前后端分离的时代,不论响应成功还是失败的数据格式都需要保持一致。SpringBoot全局异常处理:环境要求JDK:1.8SpringBoot:1.5.17.RELEASESpringBoot中通过@ControllerAdvice和@Ex...
2019-12-28 16:10:46
608
转载 正则表达式回溯引发CPU飙到100%
正则表达式在线测试平台:https://regex101.com/近期我在为Lazada卖家中心做一个自助注册的项目,其中的shop name校验规则较为复杂,要求:1. 英文字母大小写2. 数字3. 越南文4. 一些特殊字符,如“&”,“-”,“_”等看到这个要求的时候,自然而然地想到了正则表达式。于是就有了下面的表达式(写的比较龊):^([A-Za-z0-9._()&...
2019-12-15 16:19:50
578
原创 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
693
转载 前端读取Excel报表文件
在实际开发中,经常会遇到导入Excel文件的需求,有的产品人想法更多,想要在前端直接判断文件内容格式是否正确,必填项是否已填写依据HTML5的FileReader,可以使用新的API打开本地文件(参考这篇文章)FileReader.readAsBinaryString(Blob|File) FileReader.readAsText(Blob|File, opt_encoding)...
2019-11-23 19:47:07
374
Xshell6软件工具
2019-03-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人