- 浏览: 780113 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (256)
- ssh (18)
- webservice (8)
- java基础 (38)
- j2EE方方面面 (17)
- 随意涂鸭!呵呵 (2)
- 数据库 (22)
- work (10)
- XML与XML解析 (9)
- 测试 (2)
- sso (1)
- ldap (6)
- java 模板技术 (4)
- 版本管理 (1)
- 每日小点滴 (26)
- javascript (26)
- Jakarta Commons (2)
- css (6)
- 设计 (3)
- Eclipse插件开发 (3)
- BAP (3)
- web控件 (2)
- java加密解密 (4)
- 调优 (6)
- 界面技术 (3)
- java多线程 (6)
- 互联网 (2)
- 日志管理 (4)
- java调度 (3)
- rest (0)
- Python (2)
- mobile (2)
- 2016的故事 (4)
- Docker (1)
- NOSQL_Hadoop (0)
最新评论
-
promiseloney:
这个女程序员厉害了。。。
JVM调优:GC 参数 -
zxjlwt:
可以通过WebService上传一个文件吗?素人派http:/ ...
webservice传送XML大小估算 -
liaoshaoyang:
写的不错嘛 可以做参考
权限管理设计一 -
aaaaaaaaabaas:
谢谢,对我有帮助
Apache Commons Configuration使用入门 -
Jack_Wilshere:
com.smartdot.pdm.business.corp. ...
java导出txt
一、首先应该明白,在SSH中,spring做了两次集成,第一次是与struts做了集成,第二次是与hibernate集成。
二、下面来谈第一次集成,与struts集成,通过修改struts-config.xml 中的action type 为 org.springframework.web.struts.DelegatingActionProxy,将action的控制转到spring 容器,当转到spring容器, spring会在spring的配置文件中找与action 的path属性同名的bean从而执行相应的类的操作.
- <action
- attribute="loginForm"
- input="login.jsp"
- name="loginForm"
- path="/login"
- scope="request"
- type="org.springframework.web.struts.DelegatingActionProxy" >
- <bean name="/login" class="com.ssh.action.LoginAction" singleton="false">
- <property name="dao">
- <ref bean="UsersDAOImp"/>
- property>
- bean>
xml 代码
三、第二次集成,与hibernate集成, DAO 继承了org.springframework.orm.hibernate3.support.HibernateDaoSupport类,所以可以简单的利用sping提供的一些功能。 HibnernateDaoSupport实现了HibernateTemplate与SessionFactory的关联。HibernateTemplate(用HibnernateDaoSupport里的getHibernateTemplate()可以获得)对Hibernate Session进行了封装,可省去获得Session实例、事务启动与提交/回滚以及异常处理等一系列步骤,所以非常简单。
java 代码
- public class UsersDAOImp extends HibernateDaoSupport implements UserDao {
- private static final Log log = LogFactory.getLog(UsersDAOImp.class);
- protected void initDao() {
- //do nothing
- }
- /* (non-Javadoc)
- * @see com.ssh.dao.impl.aa#save(com.ssh.entity.Users)
- */
- public void save(Users transientInstance) {
- log.debug("saving Users instance");
- try {
- getHibernateTemplate().save(transientInstance);
- log.debug("save successful");
- } catch (RuntimeException re) {
- log.error("save failed", re);
- throw re;
- }
- }
- /* (non-Javadoc)
- * @see com.ssh.dao.impl.aa#delete(com.ssh.entity.Users)
- */
- public void delete(Users persistentInstance) {
- log.debug("deleting Users instance");
- try {
- getHibernateTemplate().delete(persistentInstance);
- log.debug("delete successful");
- } catch (RuntimeException re) {
- log.error("delete failed", re);
- throw re;
- }
- }
- /* (non-Javadoc)
- * @see com.ssh.dao.impl.aa#findById(java.lang.Integer)
- */
- public Users findById( java.lang.Integer id) {
- log.debug("getting Users instance with id: " + id);
- try {
- Users instance = (Users) getHibernateTemplate()
- .get("com.ssh.entity.Users", id);
- return instance;
- } catch (RuntimeException re) {
- log.error("get failed", re);
- throw re;
- }
- }
- /* (non-Javadoc)
- * @see com.ssh.dao.impl.aa#findByExample(com.ssh.entity.Users)
- */
- public List findByExample(Users instance) {
- log.debug("finding Users instance by example");
- try {
- List results = getHibernateTemplate().findByExample(instance);
- log.debug("find by example successful, result size: " + results.size());
- return results;
- } catch (RuntimeException re) {
- log.error("find by example failed", re);
- throw re;
- }
- }
- /* (non-Javadoc)
- * @see com.ssh.dao.impl.aa#findByProperty(java.lang.String, java.lang.Object)
- */
- public List findByProperty(String propertyName, Object value) {
- log.debug("finding Users instance with property: " + propertyName
- + ", value: " + value);
- try {
- String queryString = "from Users as model where model."
- + propertyName + "= ?";
- return getHibernateTemplate().find(queryString, value);
- } catch (RuntimeException re) {
- log.error("find by property name failed", re);
- throw re;
- }
- }
</property>
代码不全。
四、当然,你得首先把spring环境搭起来,通过在struts-config.xml
增加
xml 代码
<plug-in classname="org.springframework.web.struts.ContextLoaderPlugIn"></plug-in>
- <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
- <set-property property="contextConfigLocation"
- value="/WEB-INF/applicationContext.xml" />
- plug-in>
评论
17 楼
calmness
2007-11-30
daquan198163 写道
容器还是需要依赖的,但此容器非彼容器,Spring是轻量级容器,这个年头我就没必要再废话去赞spring的优势了吧
每个框架搞自己的一套配置方式只能是混乱之源
你是希望你的系统里的各层存在多种配置风格呢,还是希望一种统一风格搞定所有层?
每个框架搞自己的一套配置方式只能是混乱之源
你是希望你的系统里的各层存在多种配置风格呢,还是希望一种统一风格搞定所有层?
考虑这样一种情况,在原有情况中我只使用了hibernate,没有spring,后面才加入spring,那么这个时候我更希望不需要改动原有的配置基础上增加spring,而不希望都放到spring里面配置。因此我只需要
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>classpath:hibernate.cfg.xml</value> </property> </bean>
每个框架保持自己原有的配置我觉得并不会混乱,反而混到一起我才会觉得更混乱。
16 楼
williamy
2007-11-26
daquan198163 写道
每个框架搞自己的一套配置方式只能是混乱之源
你是希望你的系统里的各层存在多种配置风格呢,还是希望一种统一风格搞定所有层?
15 楼
daquan198163
2007-11-26
容器还是需要依赖的,但此容器非彼容器,Spring是轻量级容器,这个年头我就没必要再废话去赞spring的优势了吧
每个框架搞自己的一套配置方式只能是混乱之源
你是希望你的系统里的各层存在多种配置风格呢,还是希望一种统一风格搞定所有层?
每个框架搞自己的一套配置方式只能是混乱之源
你是希望你的系统里的各层存在多种配置风格呢,还是希望一种统一风格搞定所有层?
14 楼
hantsy
2007-11-26
daquan198163 写道
hantsy 写道
是的,我的意思是只提供一个hibernate配置文件就好了,。。按照现在的Spring的hibernate集成方法,实际上是配置上的入侵。。。这不符合它的松散耦合理念。
头一次听说所谓“配置上的入侵”
松散耦合指的也是组件之间的松散
spring倒是鼓励“一致性”原则,所有东西都用spring风格配置不是很好么
如果真正是松散耦合,所有的框架都应该独立使用它的自己的开发配置方式,而不是依赖Spring,否则跟我们以前抱怨ejb依赖容器有什么差别。。。
13 楼
daquan198163
2007-11-23
hantsy 写道
是的,我的意思是只提供一个hibernate配置文件就好了,。。按照现在的Spring的hibernate集成方法,实际上是配置上的入侵。。。这不符合它的松散耦合理念。
头一次听说所谓“配置上的入侵”
松散耦合指的也是组件之间的松散
spring倒是鼓励“一致性”原则,所有东西都用spring风格配置不是很好么
12 楼
qingfeng825
2007-11-23
hantsy :不过你试过后成功了没有,麻烦看一下下面这篇文章啊,看看该怎么解决?我没有办法了。呵呵。
http://qingfeng825.iteye.com/admin/show/142936
http://qingfeng825.iteye.com/admin/show/142936
11 楼
hantsy
2007-11-23
qingfeng825 写道
hibernate.cfg.xm写法照原样
只需把applicationContext.xml改为
这样就可以不再重复配置
只需把applicationContext.xml改为
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>/WEB-INF/hibernate.cfg.xml</value> </property> </bean> <bean name="/login" class="com.yourcompany.struts.action.LoginAction" singleton="false"> <property name="dao"> <ref bean="UsersDAOImp"/> </property> </bean> </beans>
这样就可以不再重复配置
不知道你自己有没有试过这种配置,。。我种方法我老早就试过了,还要定义datasoure
10 楼
qingfeng825
2007-11-23
lihuan1024 :不知道你是怎么布署的,我也是用的你的方法,启动服务器没有报错啊,这样可以实现.我的环境是Tomcat5.5.23 myeclipse5.1
下面是Struts的配置文件.
下面是Struts的配置文件.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <data-sources /> <form-beans> <form-bean name="loginForm" type="com.yourcompany.struts.form.LoginForm" /> <form-bean name="addForm" type="com.yourcompany.struts.form.AddForm" /> </form-beans> <global-exceptions /> <global-forwards /> <action-mappings> <action attribute="loginForm" input="login.jsp" name="loginForm" path="/login" scope="request" type="com.yourcompany.struts.action.LoginAction" validate="false" /> </action-mappings> <controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor" /> <message-resources parameter="com.yourcompany.struts.ApplicationResources" /> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn"> <set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" /> </plug-in> </struts-config>
9 楼
drliujia
2007-11-23
http://static.springframework.org/spring/docs/2.5.x/api/org/springframework/web/struts/AutowiringRequestProcessor.html
8 楼
lihuan1024
2007-11-23
之前我也比较倾向于使用Struts管理spring,这样可以在dao层做事务处理,不过整合的过程比较复杂,使用楼主的ssh整合方法较简单,最近有个项目,我在struts中添加
<controller>
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor" />
</controller>
从而省略在action中配置相同的type属性,可是启动服务器时报错,不知什么原因……
<controller>
<set-property property="processorClass"
value="org.springframework.web.struts.DelegatingRequestProcessor" />
</controller>
从而省略在action中配置相同的type属性,可是启动服务器时报错,不知什么原因……
7 楼
qingfeng825
2007-11-22
请问drliujia :与struts也是一样,通过autowire只要在struts.xml中声明使用相应的processor,即可完全的避免侵入。具体应该怎么做啊?谢谢
6 楼
qingfeng825
2007-11-22
hibernate.cfg.xm写法照原样
只需把applicationContext.xml改为
这样就可以不再重复配置
只需把applicationContext.xml改为
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"> <value>/WEB-INF/hibernate.cfg.xml</value> </property> </bean> <bean name="/login" class="com.yourcompany.struts.action.LoginAction" singleton="false"> <property name="dao"> <ref bean="UsersDAOImp"/> </property> </bean> </beans>
这样就可以不再重复配置
5 楼
drliujia
2007-11-22
spring-hibernate的整合是可以只提供hibernate本身的配置文件的,你只要告诉spring此文件的path即可;与struts也是一样,通过autowire只要在struts.xml中声明使用相应的processor,即可完全的避免侵入
4 楼
hantsy
2007-11-22
是的,我的意思是只提供一个hibernate配置文件就好了,。。按照现在的Spring的hibernate集成方法,实际上是配置上的入侵。。。这不符合它的松散耦合理念。
3 楼
sslaowan
2007-11-22
<p>
<p>使用hibernate.cfg.xml才叫松耦合吧</p>
hantsy 写道
我最不喜欢的是为什么提供一个hibernate.cfg.xml文件,还需要配置其它的东西。我希望的一个配置sessionFactory时指定一个Hibernate配置文件就完了。这样才叫松散耦合。
</p><p>使用hibernate.cfg.xml才叫松耦合吧</p>
2 楼
daquan198163
2007-11-22
hantsy 写道
Spring 提供的方法集成并不好,如果使用Spring的ActionSupport替换的struts的Action造成spring代码的入侵,如果把action注册为spring bean,问题是你不得不多维护一个配置文件。。。另外可以使用spring工具类从web层取得ApplicationContext, 再按需要取得bean(用一个大的ServiceFacade类管理所有的service),只要几行代码就可以实现,同时也很容易切换到其它框架上(假如你不使用spring),我比较喜欢这种方式。
Spring提供的Hibernate集成,我最不喜欢的是为什么提供一个hibernate.cfg.xml文件,还需要配置其它的东西。我希望的一个配置sessionFactory时指定一个Hibernate配置文件就完了。这样才叫松散耦合。
Spring提供的Hibernate集成,我最不喜欢的是为什么提供一个hibernate.cfg.xml文件,还需要配置其它的东西。我希望的一个配置sessionFactory时指定一个Hibernate配置文件就完了。这样才叫松散耦合。
不需要hibernate.cfg.xml
1 楼
hantsy
2007-11-22
Spring 提供的方法集成并不好,如果使用Spring的ActionSupport替换的struts的Action造成spring代码的入侵,如果把action注册为spring bean,问题是你不得不多维护一个配置文件。。。另外可以使用spring工具类从web层取得ApplicationContext, 再按需要取得bean(用一个大的ServiceFacade类管理所有的service),只要几行代码就可以实现,同时也很容易切换到其它框架上(假如你不使用spring),我比较喜欢这种方式。
Spring提供的Hibernate集成,我最不喜欢的是为什么提供一个hibernate.cfg.xml文件,还需要配置其它的东西。我希望的一个配置sessionFactory时指定一个Hibernate配置文件就完了。这样才叫松散耦合。
Spring提供的Hibernate集成,我最不喜欢的是为什么提供一个hibernate.cfg.xml文件,还需要配置其它的东西。我希望的一个配置sessionFactory时指定一个Hibernate配置文件就完了。这样才叫松散耦合。
发表评论
-
Ibatis 升级 Mybatis
2014-11-06 15:41 4003---ibatis 文件的修改1.拷贝mapping 文件中的 ... -
aaaaaaa
2013-04-11 15:01 0CREATE OR REPLACE FUNCTION nee ... -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
2012-08-24 14:53 1113转载自: http://www.cnb ... -
Struts1之Action小结
2012-08-24 12:54 16341.ForwardAction:用于请求转发。 例如:锚 ... -
Struts2和Struts1.x的全面比较一
2012-08-24 11:40 814转载自:http://www.blogjava.net/s ... -
ibatis 操作返回值
2012-05-14 14:23 3124iBatis insert:iBatis的insert方法返回 ... -
bean的属性类型----ibatis类型-------oracle数据库类型
2010-10-11 09:40 36901、 ibatis中会通过resultM ... -
Spring事务的传播行为和隔离级别
2010-04-13 09:45 1331********TransactionDefinition ... -
struts 模块化开发学习
2009-05-14 09:52 1484重点:以 <param-name>config/V ... -
Spring 事务
2009-02-03 11:36 1078Spring声明式事务让我们从复杂的事务处理中得到解脱。使得我 ... -
Spring学习网址
2009-01-15 15:09 1077http://www.redsaga.com/spring_r ... -
单位框架学习总结
2008-04-07 13:18 1622单位的框架:struts+ ... -
内置的struts Action 类----DispatchAction
2008-04-06 22:07 3602一、用途:通常在一个Action中只能完成一种业务操作,例如用 ... -
struts-config.xml 简述
2008-01-10 10:53 1725。<struts-config>是st ... -
spring中bean的高级属性之list, set, map以及props元素(含举例)
2007-11-29 09:22 15873list, set, map和props元素分别用来设置类型 ... -
hibernate 与 spring 松散配置的问题
2007-11-23 09:52 1790因为有朋友的回复,所有重做了一个SSH的例子,实现S/S/H松 ... -
ssh例子
2007-11-21 12:33 9943附件中有两个例子,一个是最简单的SSH,一个是整合了事务处理的 ... -
ssh实际操作指导
2007-11-21 11:48 1959一、生成的struts配置文件struts-config.xm ...
相关推荐
"三大框架SSH jar包集合"通常包含以下关键组件的jar文件: 1. Struts相关的jar:如struts-core、struts2-convention-plugin、struts2-config-browser-plugin等,它们包含了Struts框架的基本运行库和扩展功能。 2. ...
【当当网SSH架构】是一种基于Java Web技术的三层架构,SSH是Struts、Spring和Hibernate三个开源框架的缩写,常用于构建企业级的Web应用程序。这个项目非常适合初学者学习,因为它涵盖了从基础到进阶的许多核心概念,...
SSH框架,全称为Struts2、Spring和Hibernate的组合,是Java Web开发中常见的三大开源框架集成。这个框架集合提供了模型-视图-控制器(MVC)架构模式,用于构建高效、可维护的Web应用程序。下面我们将深入探讨SSH框架...
SSH框架资源汇总是一个集合了关于Spring、Struts和Hibernate这三个主要Java Web开发框架的资料包。这个资源包可能包含了各种教程、示例代码、配置文档等,旨在帮助开发者更好地理解和运用SSH框架进行项目开发。 ...
本资料集合了SSH2框架与数据库相关的学习资源,适合对Java编程和Web开发感兴趣的朋友进行自我提升。 1. **Spring框架**:Spring是一个全面的Java应用开发框架,它提供了一个丰富的IOC(Inversion of Control,控制...
该设计的核心思想是将用户权限控制分为三类,结合了基于角色的权限控制模型(RBAC)的优势。RBAC模型允许通过角色来关联用户和权限,简化了权限分配的复杂性。在该设计中,首先定义了用户、角色和权限三个基本实体:...
Java,SSH,SSM,以及算法是IT行业中Java开发领域的重要组成部分,对于求职者和在职开发者来说,理解和掌握这些知识点是提升技术能力的关键。以下是对这些主题的详细讲解: 1. **Java**: Java是一种广泛使用的面向...
一个名为“小项目第三部分”的资源集合,为想要深入学习和实践SSH框架的人们提供了一个宝贵的学习平台。 首先,集合中的“笔记.xls”文件是一个电子表格,记录了开发者在学习SSH过程中对框架的理解、配置步骤和实践...
标签中的"SSH"通常指的是Spring、Struts和Hibernate这三大Java开源框架,它们是企业级Java应用开发的常用工具。Spring作为轻量级的IoC和AOP容器,管理着应用程序的组件和依赖关系;Struts提供了MVC设计模式的实现,...
"表达了分享者对于学习者的善意与期待,暗示了这个Java经典案例源代码集合具有较高的学习价值。通过分析这些源代码,初学者可以了解实际项目中的编程实践,而经验丰富的开发者则可能从中找到优化代码或解决特定问题...
3. 第三阶段,SSH框架技术,主要学习Struts2、Hibernate、Spring三大主流Java框架,理解其工作原理并进行整合,为实际项目开发做好准备。 4. 第四阶段,项目实战,学员将在合作软件公司的技术指导下参与真实商业...
* Java 基础知识:Java 语法、面向对象、常见 API 集合框架 * Java 界面编程:AWT 事件机制、Swing * Java API:Java IO、多线程、网络编程、反射、注解、数据库 & JDBC 编程 模块二:数据库基础 * SQL 基础:增删...
- **O'Reilly Conferences**:组织各类技术会议,汇聚行业内的创新者和思想领袖,促进技术交流和产业发展。 - **Safari Bookshelf**:在线技术图书馆,订阅用户可快速查找所需信息,轻松解决技术难题。 #### 六、...
- **定义**: 面向对象编程(Object-Oriented Programming,OOP)是一种程序设计思想,它将现实世界中的事物抽象为类和对象,并通过对象之间的交互来完成程序的功能。 - **内容要点**: - 类与对象的概念及其关系 - ...
同时,熟悉Java的常用API和集合框架是必不可少的,这包括数组、列表、集合、映射等数据结构的使用。 #### 第二阶段:Java界面编程 尽管在Web开发中较少使用,但掌握AWT和Swing仍然是必要的,尤其是在桌面应用程序...
final、finally、finalize三者区别:final用于声明常量,finally用在try-catch-finally语句中表示必须执行的代码块,finalize是Object类的一个方法,垃圾回收器在销毁对象之前会调用它。 Io流的层次结构:Java中Io...
1. **Java SE**:精通Java基础,包括集合框架(List、Map、Set)、GUI编程、I/O流、多线程和Socket编程,对TCP/IP协议有一定理解。熟练运用泛型、反射和JDK动态代理。 2. **Java EE**:熟练使用JSP、Servlet、JSTL、...
- 使用三层架构思想:表现层、数据访问层、业务逻辑层。 - 结合SSH框架(Struts、Spring、Hibernate)来实现系统的逻辑功能。 - CSS和Photoshop用于网页美化和图片处理。 #### 五、结论 该项目的目标是通过开发...
进一步深入,可以接触SSH(Struts、Spring、Hibernate)三大框架。从Struts1开始,然后过渡到Struts2和Hibernate,最后学习Spring,这些都有对应的权威指南和详解书籍。 在技能提升阶段,设计模式、数据结构和算法...
- 主流框架:如Struts、Spring、Hibernate(SSH),以及Ajax,掌握其工作原理和应用。 - UML建模:理解统一建模语言,用于系统设计。 - 设计模式:掌握常见的设计模式,如单例、工厂、观察者等,提升代码质量和可...