Aspectj LTW 实践
本文将介绍使用 AspectJ,介绍它的 3 种织入方式。
AspectJ 作为 AOP 编程的完全解决方案,提供了三种织入时机,分别为
- compile-time:编译期织入,在编译的时候一步到位,直接编译出包含织入代码的 .class 文件
- post-compile:编译后织入,增强已经编译出来的类,如我们要增强依赖的 jar 包中的某个类的某个方法
- load-time:在 JVM 进行类加载的时候进行织入
本文将介绍使用 AspectJ,介绍它的 3 种织入方式。
AspectJ 作为 AOP 编程的完全解决方案,提供了三种织入时机,分别为
大家都知道OOP,即ObjectOriented Programming,面向对象编程。而本文要介绍的是AOP。AOP是Aspect Oriented Programming的缩写,中译文为面向切向编程。OOP和AOP是什么关系呢?首先:
在OOP的世界中,问题或者功能都被划分到一个一个的模块里边。每个模块专心干自己的事情,模块之间通过设计好的接口交互
OOP和AOP都是方法论。我记得在刚学习C++的时候,最难学的并不是C++的语法,而是C++所代表的那种看问题的方法,即OOP。同样,今天在AOP中,我发现其难度并不在利用AOP干活,而是从AOP的角度来看待问题,设计解决方法。这就是为什么我特意强调AOP是一种方法论的原因
###AOP
Java 语言中,从织入切面的方式上看,存在三种织入方式:编译期织入、类加载期织入和运行时织入。
编译期织入是指在Java编译期,采用特殊的编译器,将切面织入到Java类中;而类加载织入则指通过通过特殊的类加载器,在类字节码加载到JVM时,织入切面;运行期织入则是采用CGLib工具或者JDK动态代理进行切面的织入。
所以,AOP 代理则可分为静态代理和动态代理两大类
本篇将对信息安全领域中(主要指)认证、授权、鉴权和权限控制这四个概念给出相应的定义,并对这个概念之间的相互关系进行梳理。
认证是指根据声明者所特有的识别信息,确认声明者的身份。认证在英文中对应于identification这个单词。
最常见的认证实现方式是通过用户名和密码,但认证方式不限于此。下面都是当前常见到的认证技术,
为了确认用户的身份,防止伪造,在安全要求高的场合,经常会使用组合认证(或者叫多因素认证),也就是同时使用多个认证方式对用户的身份进行校验。
副标题:超三成的python 初学者,倒在了这三个坑内
坊间流传着一句经典:“人生苦短,我用Python!”
python目前斩获的头衔有:挤掉java成为编程语言排行第二、增量最快、AI时代头牌语言,甚至已经入选北京山东等地的中小学教材,因为其简单易用,适用广泛,已经成为很多初学编程人的首选语言。
但由于Python的某些特有的历史原因,例如版本兼容问题等,导致在学习的过程中,总会遇到几个大坑,导致刚刚萌芽的学习热情就被无情浇灭。本篇主要讲解初学python过程中最常遇到的3个大坑:
学习这几点,初学者不再倒在入门的门槛上,轻松入门;已入门的,可以帮您提高python开发使用和效率
公司用电信百兆,使用Vultr的日本服务器,延迟300多ms,丢包率50%,网页直接打不开,之前都能秒开Youtube1080分辨率视频,现在开个google搜索都要半天,然后就去排查问题。
先是测试vultr 服务器自身宽带有没有缺斤少两,下载speedtest工具测试,发现服务器自身网速快的飞起,下载有82M每秒。
1 | git clone https://github.com/sivel/speedtest-cli.git |
那么只可能是本地网络到服务器的网络通道出了问题:
需要准备的软件: Java , ssh
下载Haddop:http://www.apache.org/dyn/closer.cgi/hadoop/common/
集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),一般情况下,CentOS 默认已安装了 SSH client、SSH server,打开终端执行如下命令进行检验:
1 | rpm -qa | grep ssh |
若需要安装,则可以通过 yum 进行安装
1 | sudo yum install openssh-clients |
测试ssh 是否可以用
1 | ssh localhost |
Java中的类型float、double用来做计算会有精度丢失问题,下面来看下面的示例。
1 | public static void main(String[] args) { |
上面的程序输出结果是多少?
0.07?非也!
正确的结果是:
1 | 0.06999999999999999 |
为什么是这样?
nginx对下划线的头信息做了限制
不用下划线
配置nginx 参数
underscores_in_headers on; (默认 underscores_in_headers 为off)
第一种:proxy_pass后缀不加斜杠
1 | location /abc/ { |
第二种:proxy_pass后缀加斜杠
1 | location /abc/ { |
上面两种配置,区别只在于proxy_pass转发的路径后是否带/
Update your browser to view this website correctly. Update my browser now