ITPub博客

首页 > 应用开发 > IT综合 > struts+spring+hibernate感悟(转载)

struts+spring+hibernate感悟(转载)

原创 IT综合 作者:polalisi 时间:2009-03-10 23:51:40 0 删除 编辑
三者的结合堪称完美,整合三者关键是配置文件
1.web.xml
用于web服务器装载过滤器,servlet,以及配置文件
struts
在此被装载org.apache.struts.action.ActionServlet,还有它的配置参数config文件struts-config.xmlspring在此被装载org.springframework.web.context.ContextLoaderServlet还有它的配置文件applicationContext.xml,其他省略不列出例子:

contextConfigLocation
/WEB-INF/applicationContext.xml
action

org.apache.struts.action.ActionServlet


config
/WEB-INF/struts-config.xml

1


context

org.springframework.web.context.ContextLoaderServlet

1


<!-- Action Servlet Mapping -->

action
*.do
2.struts-config.xml这个文件这个是strust专有配置文件,配置form,全局转发,action,message-resources(用于显示提示信息),插件格式如下:


.....



.......


type="org.springframework.web.struts.DelegatingActionProxy" name="logonform"
input="/login.jsp" scope="request" validate="true">

.....

......




value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml" />

className="org.springframework.web.struts.ContextLoaderPlugIn">
value="/WEB-INF/applicationContext.xml" />

3.applicationContext.xml这个是spring的专有配置文件,里面配置代理hibernate资源和strutsaction格式如下:

class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">

com.microsoft.jdbc.sqlserver.SQLServerDriver

jdbc:microsoft:sqlserver://127.0.0.1:1400;DatabaseName=books


sa


123


class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">






com/binghe/hibernate/booktype/BookType.hbm.xml


com/binghe/hibernate/book/Book.hbm.xml






org.hibernate.dialect.SQLServerDialect

false


class="org.springframework.orm.hibernate3.HibernateTransactionManager">



class="com.binghe.spring.booktype.BookTypeDAOImp">




class="com.binghe.spring.book.BookDAOImp">







class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">








PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED,readOnly



class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">








PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED,readOnly



class="com.binghe.struts.action.booktype.BookTypeAction"
singleton="false">




class="com.binghe.struts.action.book.BookAction"
singleton="false">




4.hibernate的配置文件为POJOClassName.hbm.xmlPOJOClassName是你定义的一个javabean,你可以把这个配置文件放在和pojobean一个目录下,也可以放在其他目录,然后引用,格式如下:



not-null="false" />
not-null="false" />
not-null="false" />
not-null="false" />
insert="false" update="false">


class="com.binghe.hibernate.readertype.ReaderType" insert="false"
update="false">


inverse="true" cascade="none">

class="com.binghe.hibernate.borrowbill.BorrowBill" />

上面的所有配置信息是我从自己做的一个项目中抽取出来的spring中的依赖注入/控制反转是不错的,你可以定义任何接口,然后实现接口里面的方法,通过spring的配置文件把你的接口注入到任何地方,前提是你引用的必须是接口,在引用的地方必须有接口定义以及getter方法,不过你可以把这个接口当作类似javabean的一个属性一样来使用,javabean都有gettersetter方法的
spring
里面的事务代理也挺挺不错的


target它是指向要注入的类,代理这个类所实现的接口


PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED,readOnly
PROPAGATION_REQUIRED,readOnly

transactionAttributes是对所代理的方法哪些方法提供事务,比如你定义一个以add开头的方法,那它就可以有事务管理了,对于它里面的所有操作,都可以实现事务机制,若有异常就回滚事务
hibernate
的映射机制是orm,面向对象的数据库查询,查询时必须提供查询类(如find方法"from Book"hql语句中的Book不是表名而是类名),以得到它的实例,对应数据库的javabean的属性必须都是对象型的,intdouble必须定义为IntegerDouble类型,映射表有个lazy属性应该设置false,不然在查询数据库后加载一条记录时会报错。一对多双相关联:一对多映射,复杂 inverse="true" cascade="none">

class="com.binghe.hibernate.borrowbill.BorrowBill" />
cascade属性不好用,如果有删除记录操作时我都把它设置成none值,双方都要设置,否则报错,因为没法相互通知
多对一映射,简单


[@more@])

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10455649/viewspace-1018433/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Session实现原理
下一篇: 没有了~
请登录后发表评论 登录
全部评论
  • 博文量
    59
  • 访问量
    56093