1 Spring框架提供了与其他技术整合的API(整合API可以引用Struts,Hibernate的功能,使用更简洁);
2 Spring框架提供了一个容器,该容器可以创建和管理程序中的组件对像(Spring核心); 3 Spring框架容器提供了IOC特性(可以降低两个组件对象的耦合度)
4 Spring框架容器提供了AOP特性(可以将事务等共通功能以低耦合的方式作用到原功能组件上)。
Spring框架的IOC特性
1 IOC Inverse of Controller称为控制反转,控制:指的是组件对象的创建,初始化,销毁以及关系指定等逻辑。
2 DI Dependency Injection成为依赖注入,依赖注入时Spring实现IOC的技术途径,依赖注入主要分为set方式注入和构造方法注入。
Set注入的格式:
<property name="属性名" ref="要注入的Bean对象id值">
</property>
构造器注入格式:
<construtor-arg index="指定参数索引,从0开始">
ref="要注入的Bean对象的id值"
</construtor-arg>
Spring框架中的AOP概念及其作用
AOP(面向方面编程)
主要概念:
1 方面(Aspect)
方面封装了共通处理,可以切入到其他目标组件方法上。
2 切入点(Pointcut)
用于指定那些组件作为目标,利用一个特殊表达式。Within(类型)
3 通知(Advice)
用于指定方面和目标之间的作用时机。
通知的类型有:
前置通知(<aop:before>)--------先执行方面,再执行目标。
后置通知(<aop:afterReturning>)--------先执行目标,目标方法没抛出异常,在执行方面。
最终通知(<aop:after>)--------先执行目标,目标有无异常都执行方面。
环绕通知(<aop:around>)--------先执行方面前半部分,再执行目标,再执行方面后半部分
异常通知(<aop:afterThrowing>)--------先执行目标,发生异常后再执行方面
AOP作用:AOP是以OOP为基础,用于改善程序组件对象之间的结构,降低耦合度,以方面组件为关注点,方面组件用于封装共同处理逻辑,将来可以别其他目标组件调用,实现了共同处理和目标组件之间的解耦。
Spring MVC学习
Spring MVC主要的构成组件
--DispatcherServlet 主控制器(C)
--HandlerMapping 根据请求定位Controller
--Controller 业务控制器等价于Action
--ModeAndView 封装了模型数据和视图标识
--ViewResolver 视图解析器,定位视图组件生成响应界面(等于Result)
根据web.xml文件理解Spring MVC每个组件的功能以及更个请求的处理过程 <servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
这个配置文件是SpringMVC和tomcat的接口部分,首先是定义一个servlet对象,这里就是SpringMVC中的DispatcherServlet,主要的作用就是请求的分发,同时在<servlet-mapping>中定义了对应的URL映射地址,这个URL映射地址指定了servlet需要处理的HTTP请求,<init-param>定义servlet在初始化时的参数的配置用来指定Spring IOC容器读取Bean定义的XML文件的路径,最后定义一个监听器,这个监听器是与Web服务器的生命周期向关联的,由ContextLoaderListener监听器负责完成IOC容器在Web环境中的启动过程。
Spring MVC主要处理流程
--客户端发出mvc请求,请求交给DispatcherServlet主控制器处理
--主控制器会调用HandlerMapping组件,根据请求名找到相应的Controller组件
--主控制器调用Controller组件,处理请求,处理完毕返回一个ModeAndView对象(Controller也可以调用DAO等组件)
--主控制器调用ViewResolver解析ModeAndView对象,定位View组件并解析生成响应内容
--将响应内容输出给客户端
Hibernate学习
什么是Hibernate?
Hibernate是数据访问层的框架,对JDBC进行了封装,是针对数据访问层提出的一套面向对象的解决方案,Hibernate允许我们直接访问实体对象,她会将这种访问自动转化为SQL并执行,从而实现间接访问数据库的效果,提高我们数据库开发的效率。
Hibernate设计原理
Hibernate采用ORM设计思想,对JDBC进行封装。
ORM(Object Relation Mapping):对象关系映射,即java实体对象和关系数据库的映射。
这样的映射关系确保我们在使用Hibernate开发过程中直接访问实体对像,然后它会根据对象和关系数据库的映射关系(类中属性和数据库表中字段关系),自动转换为SQL并执行,这样实现访问数据库的目的。
Hibernate的使用步骤
hibernate.cfg.xml:主配置文件,主要用来设置数据库的连接参数以及hibernate框架的系统参数等。
实体类名.hbm.xml:映射关系文件,用来配置实体类和数据库关系表之间的关系,以及实体中属性和表中字段的关系。
知道了这两个配置文件的作用,Hibernate在实际应用中,首先导包,给项目中导入Hibernate的核心包,然后创建hibernate.cfg.xml文件,在配置文件中设置数据库连接参数和Hibernate框架的参数,创建实体类,然后创建实体类名.hbm.xml配置文件, 这里需要注意hbm.xml配置文件必须和实体类名同名,并且在同一路径下,然后再主配置文件hibernate.cfg.xml文件中追加hbm.xml的配置,配置正确后只需要调用需要的hibernate的API,可以实现数据库的增删改查操作。
Hibernate一级缓存
概念:Hibernate在创建Session对象时,会自动的给创建的对象分配一块缓存区,该区域是给Session用来缓存数据的,是由Session负责管理的,这就是一级缓存,也称为Session级缓存。
特点:1 每一个Session都有自己的缓存区,即一级缓存时单个Session独享的。 2 一个Session不能访问其他Session的缓存区,即一级缓存不能交叉访问。 3 访问数据库时,Hibernate会优先向缓存区查找要访问数据,如果缓存去存在数据,则直接返回缓存中的数据,如果缓存去不存在数据,在向数据库查找并返回,同时将查出的数据放到缓存区,提高查询效率。
第二篇:搭建SSH框架总结
搭建SSH框架总结
文章分类:Java编程
SSH框架搭建
作者:卢海
一、框架搭建基础:
a) Eclipce来发环境
b) 相应数据库连接Jar包
二、具体搭建步奏
a) 在eclipce环境中导入Spring框架
选择导入包时要选择Spring的核心包Aop包相应的ORM映射包和Web
包
b) 在eclipce环境中导入Hibernate框架
导入Hibernate对应的核心包全部导入选择何时的数据库连接方式
注意:应在MyEclicpeDatabaseExplorer中配置相应的数据库
导入Hibernate时注意选择使用Spring配置文件进行配置
c) 在eclipce环境中导入Structs框架
注意Structs应导入Structs1.2或更高版本
(注意:必须按以上顺序导入)
d) 删除asm2.2.3.jar
e) 导入commons-pool.jar连接库
导入方法在eclipce中窗口-首选项-MyEclicpe-ProjectCapabilities 选项中
将
Hibernate2中的commons-pool.jar 复制到项目的lib目录下
f) 将log4j.properties文件导入
g) 在Web.xml中配置OpenSessionInView模式
代码如下
<filter>
<filter-name>osiv</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>osiv</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
编写设置字符编码的Filter
Web.xml配置如下
<filter>
<filter-name>setEncode</filter-name>
<filter-class>com.accp.hr.filters.SetEncodingFilters</filter-class>
</filter>
<filter-mapping>
<filter-name>setEncode</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
具体Filter类编码如下:
package com.accp.hr.filters;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SetEncodingFilters implements Filter {
private String encode;
public void setEncode(String encode) {
this.encode = encode;
}
public void destroy() {
this.encode=null;
}
public void doFilter(ServletRequest servletRequest, ServletResponse
servletResponse, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request=(HttpServletRequest) servletRequest;
HttpServletResponse response=(HttpServletResponse) servletResponse; request.setCharacterEncoding(encode);
response.setCharacterEncoding(encode);
chain.doFilter(servletRequest, servletResponse);
}
public void init(FilterConfig config) throws ServletException {
this.encode=config.getInitParameter("encode");
if(encode==null){
this.encode="utf-8";
}
}
}
h) 配置Hibernate相关内容:
在Hibernate配置文件中找到如下代码并加入以下属性
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop> </props>
</property>
I) 配置Struts和Hibernate整合相关内容
在Web.xml中加入如下内容
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
在Struts配置文件中加入如下内容
注意在<message-resource>标签以上加入如下代码
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor"></controller>
J)加入验证框架
在Structs配置文件下加入如下内容(一般加载尾标签前)
<plug-in
className="org.apache.struts.validator.ValidatorPlugIn">
<set-property
value="/WEB-INF/validator-rules.xml,/WEB-INF/validate.xml"
property="pathnames"/>
</plug-in>
注意在相应目录下应有对应的validate.xml文件,文件名应与所配置的文件名一致,且应有验证文件
一:myeclipse 搭建
1.添加spring支持。
MyEclipse-->Add Spring...-->把AOP Core Web 三个libraries 复选上。 下一步 完成。
2.添加hibernate支持。
首先先打开myeclipse hibernate 视图 建立一个数据库连接。根据不同的数据驱动建立不同的数据库连接。
MyEclipse-->Add Hibernate...--> 根据需要 一步步完成。
3. 添加struts支持。
然后在web.xml文件里
<context-param>
<param-name>contexConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
再在 struts-config.xml中
<controller
processorClass=\"org.springframework.web.struts.DelegatingRequestProcessor\"> </controller>
这个时候加载项目会报一个确实pool包的错误。 然后到构建路径里去添加起来。
这时候 框架基本搭建好了。
eclipse 搭建SSH步骤
1.导入驱动包。。struts、spring、hibernate的包和数据库连接的驱动包。
2.配置 xml文件。。
3.添加struts-config.xml文件 其中涉及到引用dtd文件
4.添加applicationContext.xml文件 胚子该文件。。(1.连接。2 sessionfactory 3,假如连接字符是写在属性文件里,还要配
属性文件连接的bean)
5.实体映射用到hibernate的插件。(注意表得有主键,不然生成的xml文件有错。)
6.写dao类 biz类 action等
7 写JSP文件。
用eclipse搭建 主要得熟悉3个配置文件的配置。(web.xml 、struts-config.xml、搭建SSH框架 基本步骤
文章分类:Java编程
一:myeclipse 搭建
1.添加spring支持。
MyEclipse-->Add Spring...-->把AOP Core Web 三个libraries 复选上。 下一步 完成。
2.添加hibernate支持。
首先先打开myeclipse hibernate 视图 建立一个数据库连接。根据不同的数据驱动建立不同的数据库连接。
MyEclipse-->Add Hibernate...--> 根据需要 一步步完成。
3. 添加struts支持。
然后在web.xml文件里
<context-param>
<param-name>contexConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
再在 struts-config.xml中
<controller
processorClass="org.springframework.web.struts.DelegatingRequestProcessor">
</controller>
这个时候加载项目会报一个确实pool包的错误。 然后到构建路径里去添加起来。
这时候 框架基本搭建好了。
eclipse 搭建SSH步骤
1.导入驱动包。。struts、spring、hibernate的包和数据库连接的驱动包。
2.配置 xml文件。。
3.添加struts-config.xml文件 其中涉及到引用dtd文件
4.添加applicationContext.xml文件 胚子该文件。(1.连接。。2 sessionfactory 3,假如连接字符是写在属性文件里,还要配
属性文件连接的bean)
5.实体映射用到hibernate的插件。(注意表得有主键,不然生成的xml文件有错。)
6.写dao类 biz类 action等
7 写JSP文件。
用eclipse搭建 主要得熟悉3个配置文件的配置。(web.xml 、
struts-config.xml、applicationContext.xml)