struts+spring+hibernate感悟(转载)

三者的结合堪称完美, 整合三者关键是配置文件
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 --&gt

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资源和struts action格式如下:

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/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10455649/viewspace-1018433/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值