Java第三阶段复习:
1. Spring
1. IOC:
定义:Inverse Of Controller:反转控制,将bean对象的创建和对象之间的关联关系的维护由原来我们自己创建、自己维护反转给了spring
的容器来创建bean对象及维护关联关系
解决:解决了上层建筑严重依赖下层建筑的问题,实现了上层建筑对下层建筑的控制
实现:DI[Dependency Injection], xml解析+反射+容器+设计模式
2. Aop:
定义:Aspect Oreinted Programming:面向切面编程,是对OOP的补充,相互促进,在原有类的方法代码不变的情况下,对原有的方法进行功能性的拓展。
解决:关注点分离问题【希望不同的部分来处理不同的问题,每一部分只处理自己的问题】
实现:jdk动态代理和CGLIB代理
具体应用:声明式事务 、缓存、全局异常处理@ControllerAdvice
3.声明式事务:
@Transactional()
传播机制:propagation
required:
requires_new:
support:
隔离级别:isolation:
数据库的隔离级别:
uncommitted_read
committed_read
repeatable_read:mysql
serializable
回滚属性:rollbackFor={},norollbackFor=
默认只有RuntimeException
超时属性:timeout:
只读属性:readOnly:true
2. SpringMVC:
1.SpringMVC的运行流程图:
1.浏览器给服务器发请求,被服务器端的springmvc的前端控制器拦截
2.springmvc的前端控制器将请求交给处理器映射器【HandlerMapping】处理
3.
4.
2.SpringMVC的6个常见注解及每个注解的含义
@RequestMapping:映射请求url
@PathVariable:将路径占位符绑定到目标方法的参数上
@ResponseBody:返回json数据
@RequestBody:接收json对象信息
@RequestParam:接收请求参数
@RequestHeader:接收请求头
@ControllerAdvice:全局异常处理
@ExceptionHandler:局部异常处理
@NumberFormat:数值类型转换器
@DateTimeFormat:时间类型转换器
3.五个异常类【英文】:
SQLException
ClassNotFoundException
NullPointerException
BingdingException:
//ArrayIndexOutBoundException
3. MyBatis:
MyBatis和原生jdbc、hibernate、jdbcTemplate的优势
1.MyBatis首先是一个框架,处理有对数据表数据的增删改查操作之外,还有缓存机制、字段映射等功能
2.MyBatis支持动态SQL
3.MyBatis将表的关联关系直接映射为POJO对象的关联关系
4.MyBatis支持将java代码和SQL语句分离
5.MyBatis是一个半自动化的orm框架,便于项目后期维护和优化。
MyBatis的#{}与${}的区别:
#{}:类似于javaweb部分学过的preparestatement对象,采用占位符?预编译的方式,是sql安全的,没有sql注入问题
${}: 类似于javaweb部分学过的statement对象,直接将参数拼接到sql语句中,存在sql注入问题。
当然也不是所有的情况都是用#{},在特殊情况下,就使用${},例如:like后面的字段或者order by字段及表名 都使用${}
4. Oracle:
oracle和mysql的数据数据类型:
oracle数据类型:number、date、varchar2
oracle的group by:
oracle没有limit
oracle分页:借助于:rownum别名+子查询的方式
select *
from (
select rownum rn, ename,eid
from employee) tmp
where rn > 2 and rn <6
5. Maven
maven:使用过
maven的命令及每个命令的作用:
mvn clean: 清空target目录
mvn compile: 编译src/main/java
mvn test: 测试
mvn package: 将当前项目打成对应的包【jar、pom、war】
mvn install: 将当前项目打成的包扔到本地仓库中。
mvn deploy: 将本地仓库的项目部署到私服上。
6. Linux:
常用的6个linux命令,每个命令的含义:
find / -name *file*:查看某个文件名含有file的文件所在路径
cat 文件名 | grep 'hello world':查看文件内容是否含有指定的字符串
ps -ef | grep 服务名:查看某个进程是否启动的
netstat -an | grep 端口号:查看某个进程是否启动的
kill 【-9】 pid: 强制杀死一个进程
tar -zxvf 压缩包 -C /指定目录: 将tar.gz压缩包解压到指定目录
top: 查看cpu
df -h :查看磁盘大小的
free -m :查看内存的
软件:
解压安装:tomcat、
rpm: 安装rpm包:安装jdk
yum install 软件名:mysql
7. Redis-------------->Redis集群:
1.Redis是干啥的,缓存,加快查询效率,在service层使用,nosql
2.redis支持事务,但是事务支持不大好。
3.Redis的五种数据类型:
string:使用存储任意数据类型
hash:适合存储对象、map
set:适合存储set类型
list:适合存储set类型
zset【sorted set】:做游戏排名
8. Nginx:
nginx三大主要功能:
虚拟主机
反向代理
负载均衡
10.项目
同步请求:
异步请求
jsp:
html:${}
同步请求:
异步请求:
PageHelper:
导入pageHelper的jar包依赖
在mybatis全局配置文件中配置pageHelper插件
在查询列表之前PageHelper.startPage(pageNum,pageSize)
查询列表
PageInfo pageInfo = new PageInfo(列表);
Quartz:
Email:
Echarts
Ueditor:
弹窗和遮罩
ztree
Vue:
--->Router