submodule
|
|
|
|
功能: 查找符合特定规则的文件路径名
使用: 利用简单的正则符号匹配文件
|
|
函数 | 功能 |
---|---|
partial | 预设部分参数 |
wraps | 将被包装函数的属性赋值给包装函数,方便调试 |
|
|
|
|
|
|
shared.thrift
|
|
tutorial.thrift
|
|
|
|
RPC(Remote Procedure Call Protocol)远程过程调用协议。该协议允许运行于一台计算机上的程序调用另一台计算机上的子程序,而程序员无需为这个额外的交互过程编程。
thrift是众多rpc框架中的一个。本文主要介绍下thrift。
|
|
传输层提供了一个从网络上读写的简单抽象。有两个接口Transport和ServerTransport。
|
|
协议层定义了内存数据结构映射为线性结构的机制。简单的说就是将内存里的数据转换成可以在传输层收发的格式。比如json、xml、plain text、compact binary等
|
|
特定的服务实现特定的处理器
服务器层负责将所有功能组装起来
py
|
|
重放攻击是指攻击者发送一个目的主机已经接收过的包来达到欺骗系统的目的,主要用于身份认证的过程,破坏认证的正确性。
当你在咖啡厅里,悠闲地喝着咖啡,蹭着网(咖啡厅里的公共网络)。这时你登录某个网站时,被第三方劫持到你发给服务器的请求,此时第三方可以将这个请求重新发给服务器,使用你的账号登录了网站,第三方可以替你买很多东西,你却浑然不知。
客户端发送请求到服务端,服务端生成一个与id对应的随机数,然后返还给客户端。客户端利用该随机数+盐作为密钥对参数进行数字签名,再次请求服务端。
优点: 不依赖时钟同步
缺点: 需要两次请求
客户端利用时间戳+盐作为密钥对参数进行数字签名,请求服务端。服务端设置一个时间窗口,该窗口内请求有效,其他请求无效。
优点: 请求一次
缺点: 依赖时钟同步,时间窗口内,扔可重放攻击
在java的世界里,会对[-128, 127]之间的Integer做一个缓存。而==比较的引用。所以会出现如下现象:
|
|
解决办法: 尽量使用equals()方法。
记得第一次接触java是在2010年,当时在读大二,当时只是学习java的基础语法。由于那时候对网络等知识的欠缺再加上java web的复杂性,所以一直也没弄明白java web开发到底是什么东西。
java世界中,还有一个很明显的特点,就是专业术语特别的多,很容易让新学者摸不着头脑。下面就将学习过程中遇到的专业术语尽可能简单的介绍给大家。
javabean简单的说就是只拥有属性及其对应的get set方法的java类。
pojo(plain old java object)就是指简单的javabean,为了避免与EJB混淆所创造的简称。
EJB(enterprise javabean)是一个用来构筑企业级应用的服务器端可被管理组件。个人理解就是实现了服务器端一些通用功能的java类。spring就是用来代替EJB的。
spring是一个模块化的框架。spring的本质是依赖注入(dependency injection, DI)和面向切面编程(aspect-oriented programming, AOP)。
spring的核心理念:
侵入编程指的是在使用某些框架时,在写业务代码的时候需要继承框架的某些类以利用框架的某些功能。
写代码的时候,我们一直在追求低耦合高内聚。没有耦合的代码意味着一点关系也没有,如果需要多个类配合完成一个任务时肯定是不行的。如果耦合过高,代码将难扩展难测试。spring是如何解决低耦合问题的呢?
创建应用组件之间协作的行为称为装配(wiring)。
spring装配应用组件的方式有三种。
当使用第三方组件时,需要通过java或xml显式的配置。
通过xml文件如下:
|
|
通过java如下:
bean的id与方法名一致。
|
|
组件扫描和自动装配:
|
|
java注解
|
|
spring应用上下文(Application Context)全权负责对象的创建的装配。
spring中的每个bean都有一个ID,可指定可不指定,若不指定,则类名第一个字母小写即为ID。
面向切面编程可以让很多功能性代码(比如日志)脱离核心业务代码,使核心业务代码保持简单。实现方式如下:
通过xml文件实现AOP:
|
|
spring容器负责创建对象,装配它们,配置它们并管理它们的整个生命周期。
spring容器有多种实现。BeanFactory和ApplicationContext是其中的两种实现。
|
|
tag:
缺失模块。
1、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
2、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: true raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true