好记性不如烂笔头,这里记录了一些细碎的知识点,方便随时查阅。
D
DAO层
DAO(Data Access Object)层都是进行数据操作的类,是对于数据库中的数据做增删改查等操作的代码。将数据库的通用操作(增删,查询,创建,索引,更新等等)与应用逻辑剥离,形成单独的一层就是DAO。通过此方式,可以提高代码复用性,也容易维护或升级数据库访问相关的功能。
DAO层一般有接口定义和该接口的实现类,接口定义用于规范实现类,实现类一般用于实现具体的数据库操作。
DAO在实际后端或是本地程序实现时可以不实现,尤其是小规模的软件,其存在的意义就是为了提高复用性和功能可维护性,将数据访问与业务逻辑解耦合。
F
反向代理
引用自谈一谈正向代理和反向代理,详细内容可以见其文章。
一张图说明正向代理与反向代理。
| 比较点 | 正向代理 | 反向代理 |
|---|---|---|
| 所处网络位置 | 客户机和目标主机之间 | 服务器端 |
| 代理对象 | 代理客户端,服务端不知道实际发起请求的客户端 | 代理服务端,客户端不知道实际提供服务的服务端 |
| 用途 | 为在防火墙内的局域网客户端提供访问Internet的途径 | 将防火墙后面的服务器提供给Internet访问 |
| 安全要求 | 允许客户端通过它访问任意网站并且隐藏客户端自身,因此必须采取安全措施以确保仅为授权的客户端提供服务 | 对外都是透明的,访问者并不知道自己访问的是哪一个代理 |
| 作用 | 1. 访问原来无法访问的资源 2. 用作缓存,加速访问速度 3. 对客户端访问授权,上网进行认证 4. 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息 |
1. 保护内网安全 2. 负载均衡 3. 缓存,减少服务器的压力 |
| 典型案例 | 个人翻墙 | Nginx |
J
JAR包
英文说明 引用
A file with the .JAR file extension is a Java Archive file used for storing Java programs and games in a single file. Some contain files that make them work as standalone apps and others hold program libraries for other programs to use.
JAR files are ZIP compressed and often store things like CLASS files, a manifest file, and application resources like images, sound clips, and security certificates. Since they can hold hundreds or even thousands of files in a compressed format, it’s easy to share and move JAR files.
三句话总结
- 和Java程序相关,一个压缩包涵盖所有相关文件方便网络下载或是共享给其他人
- 包内什么都可以包含,包括类文件,资源文件(图像,音视频,安全认证等等)
- 包内文件采用ZIP压缩格式,每个jar内具有一个内含文件的清单文件(manifest file)
M
Maven
一个构建工具,可以用来管理项目的软件包/程序库的依赖关系,以及项目的构建流程。最开始用于Java项目,后来也扩展到其他程序语言的项目。
与之类似的工具有Ant,Gradle。
具体可以参考
详解:Maven项目和其pom.xml文件
Maven 教程
N
Nginx
以下内容引自Nginx 配置详解。
Nginx可作为HTTP服务器,也可作为反向代理服务器,邮件服务器。支持FastCGI、SSL、Virtual Host、URL Rewrite、Gzip等功能。并且支持很多第三方的模块扩展。
Nginx的稳定性、功能集、示例配置文件和低系统资源的消耗让他后来居上,在全球活跃的网站中有12.18%的使用比率,大约为2220万个网站。
Nginx常用功能
- Http代理,反向代理
作为web服务器最常用的功能之一,尤其是反向代理。Nginx在做反向代理时,提供性能稳定,并且能够提供配置灵活的转发功能。Nginx可以根据不同的正则匹配,采取不同的转发策略,比如图片文件结尾的走文件服务器,动态页面走web服务器,只要你正则写的没问题,又有相对应的服务器解决方案,你就可以随心所欲的玩。并且Nginx对返回结果进行错误页跳转,异常判断等。如果被分发的服务器存在异常,他可以将请求重新转发给另外一台服务器,然后自动去除异常服务器。 - 负载均衡
Nginx提供的负载均衡策略有2种:内置策略和扩展策略。内置策略为轮询,加权轮询,Ip hash。扩展策略,就天马行空,只有你想不到的没有他做不到的啦,你可以参照所有的负载均衡算法,给他一一找出来做下实现。Ip hash算法,对客户端请求的ip进行hash操作,然后根据hash结果将同一个客户端ip的请求分发给同一台服务器进行处理,可以解决session不共享的问题。
- web缓存
Nginx可以对不同的文件做不同的缓存处理,配置灵活,并且支持FastCGI_Cache,主要用于对FastCGI的动态程序进行缓存。配合着第三方的ngx_cache_purge,对制定的URL缓存内容可以的进行增删管理。
P
POM文件
Maven工具中,用于配置工程依赖关系,构建顺序等的配置文件,时Maven的核心配置文件。详细可以参考
详解:Maven项目和其pom.xml文件
Maven 教程