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