yJavaEE回顾笔记Ⅱ
依赖管理,可以配置jar作用时机。
-
jsp文件
-
**baseServet **
-
UserServlet
-
service接口
-
service实现类
-
Dao接口文件
-
Dao映射文件
文件上传前端三要素
文件上传后端使用servlet3.0注解
UserServlet
- 降低各层级间的耦合度
- 方便代码维护
- 隐藏底层代码实现细节
- 导入依赖坐标:dom4j+xpath
- 编写beans.xml 配置文件
- 编写BeanFactory工厂
- 通过工厂模式创建UserServiceImpl对象
- NoSQL(Not-only SQL),泛指非关系型的数据库,它可以作为关系型数据库的良好补充。
- 解决互联网产品的高并发、高可用、高性能、海量数据问题
- 一般情况下使用关系型数据库持久化数据(处理复杂的业务场景),对一些热点数据通过NoSQL来作为缓存提高效率…
NoSQL的主流产品
Redis(Remote Dictionary Server)是用C语言开发的一个开源的高性能键值(key-value)对数据库,往往作为缓存技术使用。所有数据都是保存在内存中,读写速度极快。
Redis安装和使用
Redis数据结构
应用场景
String 字符串
Hash 哈希
List 链表
Set 集合
ZSet 集合
也称sortedSet, 在Set的基础上,加入了有序功能,在添加元素的时候,允许指定一个分数,它会按照这个分数排序
通用命令
redis虽然有持久化操作,但是其全部数据依旧都在内存中存在,硬盘上的只是为了安全和备份。
Redis提供了两种数据持久化的方式,分别是RDB和AOF。
Redis作为一款优秀的缓存服务器存在,大多数语言都提供了连接Redis的驱动包,在java中,比较出名的是Jedis和Redisson.
常用API
-
导入相关坐标
-
编写连接池代码,可抽取为工具类
- 编写使用代码
PageBean
1 多表连接查询(inner join) 如果数据量过大时,不建议使用
2 嵌套查询(采用这种方式实现)
3 通过java代码组装需要展示的数据(service调用dao,查询查询的四张表数据再组装即可)
RouteServlet
RouteServiceImpl
RouteDao
CategoryDao
RouteImgDao
SellerDao
- 二维码又称QR Code,QR全称Quick Response,比传统的Bar Code条形码能存更多的信息,也能表示更多的数据类型。
- 优势
- 信息容量大, 可以容纳多达1850个大写字母或2710个数字或500多个汉字
- 应用范围广, 支持文字,声音,图片,指纹等等…
- 容错能力强, 即使图片出现部分破损也能使用
- 成本低, 容易制作
- 容错级别
- L级(低) 7%的码字可以被恢复。
- M级(中) 15%的码字可以被恢复。
- Q级(四分)25%的码字可以被恢复。
- H级(高)30% 的码字可以被恢复。
一款基于HTML5 Canvas的纯JS二维码生成插件。
- 申请步骤
- 注册公众号 企业/公司| 政府| 媒体
- 认证公众号 认证费:300元/次。
- 提交资料申请微信支付
- 开户成功,登录商户平台进行验证
- 在线签署协议
- 开发文档
- https://pay.weixin.qq.com/wiki/doc/api/index.html
- 微信支付接口调用的整体思路:
- 1、商户生成订单(已经完成)
- 2、商户调用微信下单接口,获取预交易的链接
- 3、商户将链接生成二维码图片,展示给用户;
- 4、支付结果通知:
- 微信异步通知商户支付结果,商户告知微信支付接收情况
- 商户如果没有收到通知,可以调用接口,查询支付状态
- 5、如果支付成功,发货,修改订单状态
- 请求路径
- POST , URL地址:https://api.mch.weixin.qq.com/pay/unifiedorder
- 请求参数
- appid、mch_id、spbill_create_ip、notify_url、trade_type:是商家自己的信息或固定数据,可以提前配置,因此无需每次请求单独配置,而是统一设置好即可,
- nonce_str、sign:是为了保证数据安全而添加的验证数据,根据算法去生成,每次请求自动生成即可。
- body、out_trade_no、total_fee:订单相关信息,需要我们自己填写。
- 支付结果通知
- 支付完成后,微信会把相关支付结果和用户信息发送给商户,商户需要接收处理,并返回应答。
- 微信服务会自动向地址发起POST请求
- 通知参数
- return_code
- return_msg
- 通信成功,会返回下面信息
- out_trade_no
- result_code
- 我们需要返回给微信的参数
- return_code
- return_msg
- 官方已经提供了SDK,供我们使用
- 微信没有提供maven仓库坐标,因此我们必须下载使用
- 内网穿透工具
- 花生壳(收费)
- Natapp(免费)
- 介绍
- 调试日志:记录运行状态,变量等参数信息,异常信息等,方便我们调试程
- 系统日志:记录用户访问行为,记录程序运行bug
- 方法增强
- 继承
- 装饰器模式:必须手动编写装饰器实现类,进行增强…(回顾filter)
- 代理模式:不需要手动编写增强的实现类(动态代理…)
- 动态代理
- jdk动态代理:要求目标对象和代理对象实现同一个接口【基于接口来创建代理类】
- cglib动态代理:可以对任意的普通类创建出代理对象【基于继承的思想】
- 特点:
- Linux是基于Unix的开源免费的多用户操作系统,相对于windows而言,其运行的稳定性和安全性都有着绝对的优势,因此它几乎成为程序代码运行的最佳系统环境。
- linux版本:
- 内核版本:在Linux之父领导下的内核小组开发维护的系统内核的版本号。
- 发行版本:一些个人/组织/公司在内核版基础上进行二次开发而重新发行的版本号。
- 通过虚拟机安装:
- 安装虚拟机
- 虚拟化一台电脑
- 安装linux操作系统
- 指定CD/DVD linux的iso安装镜像
- 虚拟机与物理机鼠标切换 ctrl+alt
- 选择中文 简体中文
- 上海时间-8个小时
- 选择基础设施服务器安装
- 指定网络模块开启
- 指定密码:123456
- 重启登录
- 通过secureCRT远程连接
- 远程去连接并操作Linux
- 企业中常用的有secureCRT、Putty、xshell、SSH Secure等。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LehIhKET-1605668885974)(assets10.png)]
1)查看
2)跳转
3)创建
4)搜索
5)修改(伪改名)
6)剪切(支持改名)
7)复制(支持改名)
8)删除(了解)
9)小结
1)创建
2)查看
3)删除【重点】
4)编辑 (Vi和Vim)
linux 下的vi 是一种文字编辑器,后来的升级版本是vim。vi 分为三种模式:命令行、插入、底行模式。
windows的压缩文件的扩展名: .zip或.rar
Linux中的打包文件扩展名:.tar
Linux中的压缩文件扩展名:.gz
Linux中打包压缩的文件扩展名:.tar.gz
1)将文件打成压缩包
2)解压缩包获得文件【重点】
Linux中对每个目录和文件都做了规定,只能由满足条件的用户才能操作,这个规定叫权限。
- 第一部分:由一个元素组成(类型)
- l:链接(快捷方式)
- d:目录(文件夹)
- -:文件
- 第二部分:由三个元素组成(当前用户权限)
- r:read(读) 4
- w:write(写) 2
- x:execute(执行) 1
- 第三部分:由三个元素组成(组内用户权限)
- r:read(读) 4
- w:write(写) 2
- x:execute(执行) 1
- 第四部分:由三个元素组成(其他用户权限)
- r:read(读) 4
- w:write(写) 2
- x:execute(执行) 1
1)显示工作目录
2)查看进程
3)杀死进程
4)搜索【文本】
5)管道
6)关机
7)重启
网络(卡)服务
防火墙服务
端口设置
- 介绍
- 一款开源免费的轻量级 Web 服务器。
- Nginx性能非常优秀,官方测试能够支撑5万并发链接,并且 cpu、内存等资源消耗却非常低,运行非常稳定。
- Nginx的功能有很多,我们主要使用它来做静态资源服务器、负载均衡服务器和反向代理服务器。
- 反向代理服务器
- 代理: 给某个对象提供一个代理对象,并由代理对象控制原对象的引用
- 正向代理: 对客户端进行代理(例如VPN)
- 反向代理: 对服务端进行代理
- 反向代理就是对服务端进行代理,作为客户端,只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再响应给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
- 代理: 给某个对象提供一个代理对象,并由代理对象控制原对象的引用
- 负载均衡服务器
- 负载均衡*(Load Balance)*意思就是将一份负载分摊到多个操作单元上进行执行
- windows版安装和使用
- nginx与tomcat区别
-
二进制发布包(绿色免安装)
- 软件已经针对具体平台编译打包发布开发人员拿到安装包之后只要解压,修改配置即可使用
-
RPM安装包
- 软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装。
-
YUM在线安装
- 软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题。
-
源码包
- 此种安装包软件以源码工程的形式发布,需要程序员自行编译安装
- 解压------>配置------->编译-------->安装
FTP(File Transfer Protocol,文件传输协议)
- JDK安装
- Tomcat安装
- Nginx安装
- MySQL安装
- Redis安装
- 环境确认
- 数据库迁移
- 用MySQL将windows的数据库进行备份
- 再用MySQL还原到linux的数据库中
- Tomcat部署项目
- 对maven进行package打包
- 使用FTP将war包上传到linux服务器
- 部署到tomcat中的webapps目录
- 反向代理
修改 nginx.cnf 配置文件
修改完毕后,需要重写加载配置文件
/usr/local/nginx/sbin/nginx -s reload
- 负载均衡
-
伪DNS映射
- C:WindowsSystem32driversetchosts
-
notpad++工具对linux的配置文件进行文本编辑
al/redis/bin/redis.conf -
防火墙放行端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
firewall-cmd --reload -
关闭redis
/usr/local/redis/bin/redis-cli shutdown
- 数据库迁移
- 用MySQL将windows的数据库进行备份
- 再用MySQL还原到linux的数据库中
- Tomcat部署项目
- 对maven进行package打包
- 使用FTP将war包上传到linux服务器
- 部署到tomcat中的webapps目录
- 反向代理
修改 nginx.cnf 配置文件
修改完毕后,需要重写加载配置文件
/usr/local/nginx/sbin/nginx -s reload
- 负载均衡