说说在 Spring 中如何使用 AspectJ 来实现 AOP
AspectJ 是通过注解来描述切点与增强的。1开发环境要求因为要使用注解,所以请确保使用的Java5.0及以上版本。引入AspectJ相关类库: org.aspectj aspectjrt ${aspectj.version} org.aspectj aspectjweaver ${aspectj.version} org.aspectj aspe
实战PHP数据结构基础之单链表
实战PHP数据结构基础之单链表文章出处:原文地址---萧潇什么是链表?链表由一个一个的作为节点的对象构成的,每一个节点都有指向下一个节点的指针,最后一个节点的指针域指向空。每个节点可以存储任何数据类型。常见操作对单链表我们常见的操作有如下:insertinsertBeforeinsertAfterinsertAtFirstsearchdeleteFirstdeleteLastdeleterever
PHP判断移动设备来源的方法
现在移动设备大热的年代,可能我们在做web前端开发的时候经常会需要用到对移动设备的页面匹配。当然我们可以用响应式页面设计来处理前端的匹配问题,但是响应式页面只是不显示某些代码,但是还是会加载到用户的移动设备中。为了更好的照顾到用户手机浏览的体验,减少不必要的加载。我们可以再通过PHP的方式来减少用户的代码加载,提高用户浏览页面时的体验。由于现在移动设备的种类繁多、而且浏览器五花八门,所以仅仅是通过
php 随机字母数字
Flex入坑指南
弹性布局flex是一个几年前的CSS属性了,说它解放了一部分生产力不为过。至少解放了不少CSS布局相关的面试题:)之前网上流行的各种XX布局,什么postion:absolute+margin,float+padding,各种都可以使用flex来取代之。早两年在使用的时候,还是会担心有兼容性问题的,某些手机在使用了auto-prefixer以后依然会出现不兼容的问题。好在现在已经是2018年了,不
原生JS getComputedStyle的方法解析
最近一直在研读jQuery源码,初看源码一头雾水毫无头绪,真正静下心来细看写的真是精妙,让你感叹代码之美。其结构明晰,高内聚、低耦合,兼具优秀的性能与便利的扩展性,在浏览器的兼容性(功能缺陷、渐进增强)优雅的处理能力以及Ajax等方面周到而强大的定制功能无不令人惊叹。另外,阅读源码让我接触到了大量底层的知识。对原生JS、框架设计、代码优化有了全新的认识,接下来将会写一系列关于jQuery解析的文章
SQLSERVER中的自旋锁介绍
在SQLSERVER中的锁有很多,例如什么意向共享锁,排他锁,行,页锁这些都属于LOCK而latch比lock更轻量级,只在内存中存在,一般用来锁住数据页面,防止多人同时修改内存中的一个数据页面而今天介绍的spinlock则比上面两种锁更更轻量级的spinlock介绍:lock和latch以外还有一种更轻量级的同步资源:spinlock(自旋锁),第一次看到spinlock这个名词是在潘爱民老师写
Android6.0源码解读之ViewGroup点击事件分发机制
本篇博文是Android点击事件分发机制系列博文的第三篇,主要是从解读ViewGroup类的源码入手,根据源码理清ViewGroup点击事件分发原理,明白ViewGroup和View点击事件分发的关系,并掌握ViewGroup点击事件分法机制。特别声明的是,本源码解读是基于最新的Android6.0版本。各位童鞋可以参考下面链接进行系统学习 (一)Android6.0触摸事件分发机制解读(二)An
小项目--网页版计算器
(1):效果图如下:先搭建起HTML页面.代码如下:(亲!请耐心的把这段代码看下去哦!)(这个html搭建是很标准的模块化,...,便于后期维护.)简单的计算器//在头部设置一个h6标签的文字.//设置form表单.以下的搭建都是在from表单下的.//按钮属性为7,按下时执行command()函数.//按钮属性为,按下时执行del()函数.//按钮属性为C,按下按钮执行clearscreen()
阮一峰的ES6---函数的扩展
函数的扩展一,函数参数的默认值在ES5中,设置参数的默认值:function(x,y){x=x||"hello";y=y||"world";console.log(x+y);}//但是如果y赋值为false时,那么y还是为默认值因此要先判断x和y的数据类型function(x,y){if(typeofx==='undefined'){x="hello";}if(typeofy==='undefin
具体实现代码@数据结构探险—栈篇 3-1
有需要的自取。。file:MyStack.hpp#ifndefMyStack_hpp#defineMyStack_hpp#include#include"Coordinate.hpp"classMyStack{public:MyStack(intsize);~MyStack();boolstackFull();boolstackEmpty();voidclearStack();intstackLe
python 字符串的操作总结
find检测str是否包含在mystr中,如果是返回开始的索引值,否则返回-1mystr.find(str,start=0,end=len(mystr))index跟find()方法一样,只不过如果str不在mystr中会报一个异常.mystr.index(str,start=0,end=len(mystr))count返回str在start和end之间在mystr里面出现的次数mystr.cou
谈谈 java 中的序列化
Java序列化机制为了节省磁盘空间,具有特定的存储规则,当写入文件的为同一对象时,并不会再将对象的内容进行存储,而只是再次存储一份引用,上面增加的5字节的存储空间就是新增引用和一些控制信息的空间。反序列化时,恢复引用关系,t1和t2指向唯一的对象,二者相等,输出true。该存储规则极大的节省了存储空间。publicclassTestSerialTwo{publicstaticvoidmain(St
正则表达式中的boolean matches(string regex
//正则表达式的matches方法检测:Stringstr2="\dhello";Stringstr3="6hello";System.out.println(str2.matches(str3));//falseSystem.out.println(str3.matches(str2));//trueSystem.out.println(str2.matches(str2));//falseSy
MyBatis的`${}`和`#{}`的区别及SQL防注入的方法
本文介绍了MyBatis的${}和#{}的用法区别,以及针对$可能带来的风险提供一种简易的SQL防注入的方法。#{}用法select语句是MyBatis中最常用的元素之一,例如:SELECT*FROMPERSONWHEREID=#{id}此语句称为selectPerson,采用int(或Integer)类型的参数,并将查询结果封装为HashMap作为返回。语句中#{id}这告诉MyBatis创建一
聊聊springboot项目数据库密码如何加密
前言在我们日常开发中,我们可能很随意把数据库密码直接明文暴露在配置文件中,在开发环境可以这么做,但是在生产环境,是相当不建议这么做,毕竟安全无小事,谁也不知道哪天密码就莫名其妙泄露了。今天就来聊聊在springboot项目中如何对数据库密码进行加密正文方案一、使用druid数据库连接池对数据库密码加密1、pom.xml引入druid包为了方便其他的操作,这边直接引入druid的startercom
R文件找不到?
在问答的页面,我看大家都在问一个问题,R文件呢?老师给了基本的回答,那就是2条线。旧版本的AS:可以直接切换为packages模式,直接找到;在project的模式下,找到module【我看的是application格式的module,也就是可以独立运行的module】,然后找到build下的自动生成的文件里找到R文件;新的AS:好像找不到R.java文件,我也是看到有同学回答能找到R.txt文件
XA 事务水很深,小伙子我怕你把握不住!
@[toc]分布式事务系列继续!今天我们来继续学习XA事务!Seata中支持四种不同的事务模式:AT、TCC、XA以及Saga,这四种不同的事务模式中,XA是最与众不同的一个!为什么这么说,相信读完本文你就了解了。1.什么是XA规范1.1什么是两阶段提交我们先来稍微回顾一下两阶段提交。先来看下面一张图:这张图里涉及到三个概念:AP:这个不用多说,AP就是应用程序本身。RM:RM是资源管理器,也就是
【前端 · 面试 】JavaScript 之你不一定会的基础题(二)
最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正、交流。争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火。前言在上一篇文章[【前端·面试】JavaScript之你不一定会的基础题(一)]中,有同学产生了这样一个疑惑:为什么click事件的监听函数中,this.id和event.target.id的输出值是不一样的?今天我们就来扒一扒这其中的原