传统项目的问题:
分布式:
垂直拆分:根据功能模块拆分为多个项目,
模块系统化.
水平拆分:系统按层级划分(业务层,服务层,控制层)
集群:
海量数据:千人千面
Maven可以一站式的构建项目和管理项目,并提供良好的jar包依赖和支持
Maven工作原理:-->本地仓库-->私服-->中央仓库,获取jar包后保存本地
Jar包管理:使用Maven中的坐标进行管理(创建时的路径)
Maven下载jar包,sha1加密
Maven仓库:http://mvnrepository.com/
Packing更改类型后用maven的update
Nagivator视图.setting修改版本,后update
Spring:
- 配置前端控制器<-----------------controller spring MVC
- Mvc注解
- 视图解析器
- 开启包扫描<---------------------service Spring事务
- 管理数据源
- 开启事务控制
- Spring整合mybatis
- 设定别名标签<--------------------mapper/dao mybatis
- 添加mybatis插件,通用mapper插件
- 编辑映射文件sql
子类容器比父类容器大
父子容器之间通过context(上下文)连接(通信)
五个通知类型
切入点:只有满足切入点表达式的方法.才能执行通知
Spring默认事务策略
检测异常转化为运行异常:throw new RuntimeException
Within表达式:粗粒度事务控制
execution表达式:细粒度事务控制
驼峰映射规则:将数据库的字段中的”_”自动去掉,自己映射到指定属性中
Mybatis默认开启一级缓存:在同一个sqlsession内实现数据共享
二级缓存默认关闭:在同一个sqlSessionFactory中生成的sqlSession实现数据共享
SpringMVC核心架构及工作流程
springMVC调用流程图
RESTFUL代替路径
数据库字典:描述表与表之间的关系
Mybatis不允许进行多值传参数:
- 对象封装
- map封装
- Array
$和#区别:
#号:
- 有预编译的效果,防止sql注入
- 为参数添加””当字符串
$符:
- 如果需要以字段名称为参数时,可使用
- 如果以字段为参数时添加$号,会导致业务异常
原则:能用#号就不用$符
ResponseBody:
如果解析的是对象.默认使用utf-8
如果是字符串,使用iso-8859-1
通用mapper
主键
使用通用mapper修改操作,必须要传主键;
Boolean默认false
Itemcat>mapper>service>controller
AJP(Apache JServ Protocol)是定向包协议。因为性能原因,使用二进制格式来传输可读性文本。WEB服务器通过 TCP连接 和 SERVLET容器连接。
JPA
重定向与转发
Response
Redirect
Transferto
Nginx 权重,
轮询,
IP_HASH :session绑定
SSO:session黏着
Mysql:获取权限语法:
grant [权限] on [数据库名].[表名] to ['用户名']@['web服务器的ip地址'] identified by ['密码'];
grant all on *.* to 'root'@'%' identified by 'root';
或者指定IP地址
grant all on *.* to 'root'@'192.168.1.103' identified by 'root';
Mysql主从配置
linux安装mysql顺序
Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar解压tar -xvf
- Debug
- Shared
- Client
- Serve
命令:
安装:rpm -ivh +文件名称
service 服务名 start(开启mysql)
service mysql stop 停止
Service mysql restart
mysqladmin -u root password root设置用户名密码
servcie iptables stop 临时关闭防火墙
servcie iptables start 打开防火墙
grep mysql +文件路径(在xx文件中找mysql)
ps –ef | grep ssh 查找某一进程
Kill -9 端口名
查询主库二进制文件及位置:SHOW MASTER STATUS
数据库从库操作
CHANGE MASTER TO
MASTER_HOST="192.168.14.138",(ip)
MASTER_PORT=3306,(端口)
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000005",(二进制文件)
MASTER_LOG_POS=120,(二进制文件位置)
START SLAVE(开启主从)
SHOW SLAVE STATUS (查看主从情况)
objectMapper
Redis持久化RDB和AOF
Redis的hash算法,及其定义