《Spring 3.0就这么简单》 读书笔记

时间:2022-08-12 05:52:31

第一章:快速入门

开发流程:

1.创建库表    依赖jar包配置

2.事务:事务是恢复和并发控制的基本单位。

原子性(Atomicity)

    一致性(Consistency)

    隔离性(Isolation)

    持续性/永久性(Durability)

3.散列算法:md5     散列算法:不可逆哦!

摘要是对信息主体的浓缩,摘要是一种单向函数,主要用于将无限的输入值转为有限的浓缩输出值,如MD5,则是将任意长度的字节系列转换为一个128位的摘要。MD5输出的128位的摘要通常会写      出32个十六进制的字符,每个字符表示4个bit。

数据库中存储的是密码的摘要哦,相同的字符串摘要也是相等的哦!

4.图片验证码:防止暴力破解!

5.重难点:请求入参      视图解析

第二章:Spring IOC容器

前言:控制反转:通过容器来控制业务对象之间的依赖关系。 降低对象间依赖。

IOC容器:bean缓存、bean生命周期管理、bean代理、资源装载、事件发布。

1.Bean配置方式:

  a:基于xml配置

  b:基于注解

  c:基于java类

2.BeanFactory

ApplicationContext

WebApplicationContext

3.依赖注入方式:  属性注入、构造函数注入、

第三章:Spring  AOP

前言:用途:横切逻辑(性能监测、访问控制、事务管理、日志记录)

1.AOP的出现:为了解决重复性代码。   纵向的重复性代码可以通过继承父类来消除。   但横向的重复性代码无法通过继承父类来消除,所以用AOP。

解决重复性代码:OOP的纵向抽象和AOP的横向抽象。

2.AOP术语

  a:Spring连接点(Joinpoint):方法调用前、方法调用后、方法抛出异常时、方法调用前后。

b:切点(Pointcut):用来定位特定的连接点。   切点就是查询条件,查询特定的连接点哦!        类和方法做定位。

c:增强(Advice): 是织入目标连接点(Joinpoint)上的一段程序代码。

d:目标对象(Target):增强所植入的目标类哦。

e:引介:特殊的增强,也是一段程序代码(属性和方法),但不是来处理横切逻辑的,而是让该类成为某接口的实现类。

f: 代理(Proxy)

g:切面(Aspect)由切点和增强组成

3.织入方式:

    a:编译期织入

    b:类装载织入

    c:动态代理织入 (spring采用的方式哦)

4.java漏洞(动态代理,还需好好的看下啊)。

第四章:使用Spring JDBC访问数据库  

前言:Spring JDBC,为了降低JDBC的开发难度,减少重复性代码。

1.mysql获取新增主键值的查询语句:SELECT LAST_INSERT_ID()。 最后插入的记录的主键值。

2.sql语句规范:用大小写区分语义和非语义元素是比较好的编码习惯哦。  非语义元素:表名、字段名。

3.存储过程和函数。(数据库的加强点,早就忘了哦)。

4.BLOB和CLOB

5.主键的产生方式:应用层产生和数据库产生。      此何解?

           应用层借助数据库的序列或表产生主键,这种方式可以保证程序的可移植性和安全性,同时可以通过缓存机制提高运行效率。

第五章:集成Hibernate

1.分页:

  a:客户端分页,将所有数据记录一次性都查过来返回到客户端,缓存在客户端哦,通过客户端展现组件进行分页。

缺点: 但第一次交互负担会很大。  (高并发:访问次数很多的时候,访问次数很大)

优点: 减少交互次数,只需一次!   分页的时候会从缓存中读取。

b: 数据库分页,查询数据,每一次只查询指定条数的记录返回给客户端。 limit 5。

     缺点:交互次数高,每一次请求都需要访问数据库,增加访问的并发性。

     优点:交互负荷轻,数据量小。

  c:服务端分页,和客户端分页一样,也是将所有数据记录查询出来,然后服务端做缓存,每一次都只返回指定条数的记录给客户端。

缺点:考虑数据缓存,数据同步问题,增加了系统的复杂性。

     优点:客户端分页和数据库分页的折中选择, 减少数据库访问的并发性。 将所有查询结果做处理,每一次只返回给定请求指定的记录数。

第六章:Spring的事务管理

1.事务:事务是恢复和并发控制的基本单位。

原子性(Atomicity)

    一致性(Consistency)

    隔离性(Isolation)

    持续性/永久性(Durability)

2.commit    rollback     savepoint

3.青奥项目用到的事务:通过aop/tx Schema命名空间 和 @Transactionl注解, 简化了事务配置难度哦。

第七章:Spring MVC

1.MVC:提高系统的灵活性、复用性、可维护性。

2.重难点:dispatcherServelt处理请求,以及请求参数绑定到控制器方法中。      上传文件也是哦!

控制产生用户所希望的模型数据和逻辑视图, vm视图来渲染模型数据(青奥项目)。

dispatcherServlet借助视图解析器来讲逻辑视图和模型数据渲染。

3.dispatcherservlet拦截请求(servlet:拦截器) servlet-mapping配置拦截制定后缀名的请求

dispatcherservlet协调分工哦。

4.listener:监听器          深入理解web服务器哦  web.xml                监听器启动spring的业务层的spring容器

filter:过滤器

servlet:拦截器

5.契约优于配置?

6.请求映射控制器方法:@RequestMapping

7.巩固Servlet    HttpServletRequest  HttpServeltResponse

8.处理数据模型,视图解析。

处理请求后返回的是一个ModelAndView对象,对于String、View、ModelMap,springMVC都会将其装配为一个ModelAndView对象(视图的逻辑名、模型对象)。

9.数据校验:在执行业务逻辑前,保证收到的数据是正确合法的哦。

10.DRY原则:Don`t  Repeat Yourself

11.spring 上传文件

第八章:单元测试

1.软件测试:单元测试——》集成测试——》功能测试——》系统测试。   前两项是开发人员要做的哦。

2.测试用例:test case

测试套件:将多个测试用例组装成一个测试套件。  可以使测试用例批量运行。

3.好好的练习下测试吧, 看看测试框架

第九章:敏捷开发 (编程思想哦)

1.敏捷开发:是一种以人和核心、迭代、循序渐进的开发方式。       不跟分、不急躁。

2.Spring “约定优于配置”  思想?

3.敏捷开发高效工具:  版本控制工具    代码构建工具

  CVS——》SVN:集中式版本控制系统                         设置里程碑:打标签。

Git:分布式版本控制系统

Maven:自动化构建(清理、编译、测试、打包、部署)     理解这些命令,如果不用maven是怎样的?

  

第十章:服务平台框架

1.跨平台、跨语言、跨终端需求:面向服务的体系结构(SOA)为了解决这个需求。

多个应用产品通过服务接口进行整合,比如QQ(整合了QQ微信、QQ新闻、QQ股票等等)

2.Web service:SOA最理想的实现技术?

三个角色:服务提供者   服务请求者     服务中介者。    3个操作:发布、查找、绑定

第十一章 实例开发流程