SSH学习一

来源:互联网 发布:linux cp覆盖文件 编辑:程序博客网 时间:2024/05/21 13:46

1.Spring MVC和structs均属于java web mvc框架,作用都是接收request请求,中间调用业务逻辑代码,最后返回response响应。

2.ioc,依赖注入,典型的工厂模式,通过sessionFactory去注入实例,意味着将你设计好的类交给系统 去控制,而不是在你的类内部控制。通俗的讲就是如果在什么地方需要一个对象,你自己不用去new 生成你需要的对象,而是通过spring为你产生这样的对象。

3.Spring MVC是一个基于DispatcherServlet的MVC框架,DispatcherServlet是继承自HttpServlet的。Spring的IOC和AOP主要就用了java的反射技术。AOP可以说是OOP的补充和完善,OOP允许你定义从上到下的关系,但并不适合从左到右的关系。AOP,简单的说,就是将那些与业务无关,却为业务模块所共同调用的逻辑或责任封装起来,便于减少系统的重复代码,降低模块间的耦合度。

web.xml中SpringMVC的配置

<servlet><servlet-name>spring</servlet-name><servlet-class>org.springframework.web.servlet.DispacherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-name>contextConfigLocation</param-nam><param-value>classpath*:config/spring-mvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet>

spring-mvc.xml

<!--  启用spring mvc注解--><context:annotation-config /><!-- 设置使用注解的类所在的包路径 --><context:component-scan base-package:包路径 ></context:component>

DispatcherServlet会利用一些特殊的bean来处理Request请求和生成相应的视图返回,到底返回的是什么视图,是由视图解析器控制的,在JSP中常用的视图解析器是InternalResourceViewResolver。

HandlerMapping接口:处理请求

|-----SimpleUrlHandlerMapping 通过配置文件,把一个URL映射到Controller

|----DefaultAnnotationHandlerMapping 通过注解,把一个URL映射到Controller类上:(已被RequestMappingHandlerMapping取代)


HandlerAdapter接口

|----AnnotationMethodHandlerAdapter 通过注解,把一个URL映射到Controller类的方法上


RequestMappingHandlerAdapter和RequestMappingHandlerMapping配对使用。


4.Spring框架的七大模块

(1)spring core 提供Spring框架的基本功能

(2)Spring context 一个配置文件,向Spring 框架提供上下文信息

(3)Spring AOP 将面向方面的编程功能集成到Spring框架中

(4)Spring DAO 面向DAO

(5)Spring ORM 若干个ORM框架

(6)Spring web模块 

(7)SpringMVC

5.Hibernate中get和有什么不同之处

如果缓存中没有找到相应的对象,get将会直接访问数据库并返回一个完全初始化好的对象,而load方法在缓存中没有发现对象的情况下,只会返回一个代理对象,只有在对象getID之外的其它方法被调用时才会真正访问数据库。


6.Hibernate的sessionFactory

一个用于创建Hibernate的session对象的工厂,作为一个单个的数据存储,它是线程安全的,session负责维护同数据库的连接,是非线程安全的。


7.Hibernate的核心接口一共5个

(1)Session接口,负责执行被持久化对象的CRUD操作

(2)SessionFactory接口,不是轻量级的,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory.

(3)Configuration接口,定位映射文档位置,读取配置

(4)Trasaction接口,负责事务相关的操作

(5)Query和Criteria接口,负责执行各种数据库查询,可以使用hql语言或sql语言两种表达方式。


8.Hibernate主键 

(1)assigned

由用户决定,与底层数据库无关。用户需要维护主键值,在调用session.save()之前要指定主键值。

(2)Hilo

需要额外的数据库表的支持,能保证同一个数据库中主键的唯一性,但不能保证多个数据库之间主键的唯一性。由Hibernate维护主键,与底层数据库无关。

(3)Increment

要求底层数据支持sequence,由Hibernate本身维护,适合单一进程访问数据库,不能用于集群环境。

(4)Indentity

与底层数据库有关,要求数据库支持Indentity.

(5)Seqence

需要底层数据库支持sequence

(6)Native

会根据不同的底层数据库自动选择Indentity,Sequence,Hilo主键生成方式。

(7)UUID

保证网络环境下的主键的主唯一性。


9.Hibernate缓存机制

(1)一级缓存(应用事物缓存)

(2)二级缓存 

第一级是Session级别的缓存 ,由Hibernate管理,一般不需要干预。

第二级是SessionFactory级别的缓存,它可以进行配置和更改。

Hibernate还为查询结果提供了一个查询缓存,它依赖于第二级缓存。

一级缓存的管理:当应用程序调用Session的save() update() saveOrUpdate get load以及调用查询接口list iterate 或filter方法时,如果session缓存中还不存在相应的对象,hibernate就会把该对象加入到第一级缓存中,当清理缓存时,Hibernate会根据缓存中对象的状态变化来同步更新数据库。

二级缓存的管理:

(1)条件查询时,一次获得所有的数据对象。

(2)把获得的所有数据对象根据ID放入到第二级缓存中

(3)当Hibernate根据ID访问数据对象时,首先从一级缓存中查,查不到如果配置二级缓存,那么从二级缓存中查,查不到,再查询数据库。

(4)删除、更新、增加数据时,同时更缓存。

0 0
原创粉丝点击