包的扫描过程
- 判断当前是否是文件夹
- 获取文件夹里面的所有内容
- 判断文件夹是否为空,为空的话直接返回
- 如果文件夹不为空,则遍历文件夹里面的所有内容
- 遍历得到每个file对象,继续进行判断,如果还是文件,则进一步进行递归
- 遍历得到的file对象不是文件夹,是文件
- 得到包路径+类名称-字符串截取部分
- 判断当前文件夹类型是否是.class
- 如果是.class类型,把路径\替换为. 之后把.class去掉
- 判断类上面是否有注解@bean,如果有的则进行实例化过程
- 把对象实例化之后,放到map集合beanfactory之中
声明式事物的概念
- 基本概念:数据库事务transaction表示的是访问且可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,表示的是一个不可分割的工作单位.事务由事务开始以及事务结束之间执行的全部数据库操作组成
- 事务的特征
- A:原子性 atomicity
- 一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个执行环节之中.事务在执行过程中发生错误,会被回滚到事务开始之前的状态,表现的是此事务从来没有被执行过一样
- C一致性Consistency
- 事务的一致性表示的是在一个事务执行之前以及执行之后数据库必须处于一致性状态
- 如果事务成功完成,那么系统中所有变化都会被正确的应用,系统处于有效的状态
- 如果在事务中出现错误,则系统之中的所有变化会自动回滚,系统返回到原始状态
- I:隔离性Isolation
- 指的是在并发的环境中,当不同的事务同时操作相同的数据时候,每个事务都会有各自完整的数据空间.由并发事务所做出的修改必须与其他任何并发事务所作的修改隔离.事务查看数据更新的时候,数据所处的状态要么是另一个事务修改其之前的状态,要么是另一个事务修改其之后的状态,事务不会查看到中间的完整状态
- D:持久性(Durability)
- 指的是只要事务成功,其对数据库所作的更新必须保存下来.即使发生系统崩溃,重新重启数据库系统之后,数据库还能恢复到事务成功结束时候的状态
- A:原子性 atomicity
MVC思想
MVC表示的是一种软件架构的思想,表示的是把软件按照模型,视图,控制器来划分
M Model模型层,指的是项目过程中的javabean,其作用是用来处理数据
- javabean分为两类:
- 实体类bean,表示的是专门储存业务数据,比如student,user等
- 业务处理的bean,指的是service或者dao对象,专门用来处理业务逻辑以及数据的访问
- javabean分为两类:
V view表示的是视图层,指的是html或者jsp等页面,作用是用来与用户进行交互,展示数据
C controller,表示的是控制层,指的是过程中的servlet,其作用是接收请求以及响应浏览器
MVC的工作流程:
用户通过视图层来发送请求到服务器中,在服务器之中的请求被controller接收,controller调用相应的model层来处理请求,处理完毕之后把结果返回到controller,之后controller再依据请求处理的结果找到相应的view试图,把渲染之后的数据最终响应返还给浏览器浏览器发送请求的时候,如果请求的地址符合前端控制器的url-pattern,此时请求会被前端控制器dispatcherservlet所处理,前端控制器会读取springmvc的核心控制文件,通过扫面组件找到此控制文件,将请求地址禾控制器中的@requestmapping注解的value属性值来进行匹配,如果匹配成功,此诸结所表示的控制器方法则为处理请求的方法,处理请求的方法需要返回一个字符串类型的视图名称,此试图名称会被试图解析器解析,之后加上前缀以及后缀组成视图的路径,通过thymeleaf来对视图进行渲染,最终转发到视图所对应的页面