ssh整合注意事项

ssh框架集成注意事项 ssh框架集成时常见问题 解决方法 配置时重要事项 立即下载

配置环境spring4+hibernate4+struts2

首先在web.xml文件中加下面这行,默认会在applicationContext.xml文件中加载配置。applicationContext.xml要放在WEB-INF下。

<!--监听器,初始化spring容器 -->
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

主要是配置applicationContext.xml里的东西,struts.xml里的基本不用改,唯一需要改的是下面这行:

<action name="Login" class="loginAction">

将全限定类名net.cxp.action.Login改为@Controller(“loginAction”)里写的名字。@Controller注解放在Action上。注意要添加@Scope注解@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE),因为每个请求一个action,而spring生成的bean默认为单例,这句将其改为原型bean,即多实例的bean。

applicationContext.xml文件如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:tx="http://www.springframework.org/schema/tx" xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

    <!-- 打开注解装配并自动检测Bean和定义Bean -->
    <context:component-scan base-package="net.cxp"></context:component-scan>

    <!-- 定义数据源 -->
    <bean id="dataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
        <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
        <property name="username" value="cxp" />
        <property name="password" value="123" />
    </bean>


    <!-- 定义session工厂 -->
    <bean id="sessionFactory"
        class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="mappingResources">
            <list>
                <value>net/cxp/entity/Portfolio.hbm.xml</value>
                <value>net/cxp/entity/Puser.hbm.xml</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="dialect">org.hibernate.dialect.Oracle9Dialect</prop>
                <prop key="hibernate.show_sql">true</prop>
                <!-- 配置二级缓存 -->
                <prop key="hibernate.cache.use_second_level_cache">true</prop>
                <!-- 由于查询的缓存命中率很低,所以关掉查询时的二级缓存 -->
                <prop key="hibernate.cache.use_query_cache">false</prop>
                <!--设置缓存的类型,设置缓存的提供商 -->
                <prop key="cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory
                </prop>
                <!--使用 getCurrentSession()必须配置此属性注意不是thread而是org.springframework.orm.hibernate4.SpringSessionContext -->
                <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext
                </prop>
            </props>
        </property>
    </bean>

    <!-- 配置事务管理器 -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 事务注解驱动 -->
    <tx:annotation-driven transaction-manager="transactionManager" />

</beans>

注意事项:
1.要将struts2里的antlr-2.7.2.jar包删掉,因为和hibernate里的antlr-2.7.7.jar冲突了。 注意还要去tomcat下相应的项目下的webinfo/lib里删掉,因为之前加载了两个包不然会报下面的错误

Exception Name:
java.lang.reflect.UndeclaredThrowableException

What you did wrong:
java.lang.reflect.UndeclaredThrowableException 
at com.sun.proxy.$Proxy76.createQuery(Unknown Source)
 at net.cxp.dao.impl.UserDaoImpl.authenticateUser(UserDaoImpl.java:58) 
 at net.cxp.biz.impl.UserServiceImpl.authenticateUser(UserServiceImpl.java:32) 
 at net.cxp.action.Login.execute(Login.java:36) 
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 

2.第二点是配置spring事务管理。虽然无论是hibernate还是spring本质上都是使用jdbc的事务管理,但配置还是要有的。
2.1如果不用spring事务管理的话。
把上面配置事务管理的bean和驱动删掉,sessionFactory里的hibernate.current_session_context_class值改为thread

<!--使用 getCurrentSession()必须配置此属性注意不是thread而是org.springframework.orm.hibernate4.SpringSessionContext -->
<prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop>

然后在使用的方法(一般是dao里的sava,update等方法)中手动打开和提交事务,就算是查询也要,否则会报createQuery is not valid without active transaction的错误。

2.2如果使用spring管理事务。实际上是使用aop完成的。(顺便提一句spring官网提供的包里没有aspectj,要到Aspectj官网下,而官网下的包里好像没有 aopalliance.jar,这个jar使用来织入切面的)


    配置spring管理事务
    1.在applicationContext.xml文件里写下面的两行
    <!-- 配置事务管理器 -->
    <bean id="transactionManager"
        class="org.springframework.orm.hibernate4.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 事务注解驱动 -->
    <tx:annotation-driven transaction-manager="transactionManager" />

    2.修改sessionFactory bean里hibernate.current_session_context_class的值
    <!--使用 getCurrentSession()必须配置此属性注意不是thread而是org.springframework.orm.hibernate4.SpringSessionContext -->
    <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext
    </prop>


    3.在需要事务的方法上加注解@Transactional

3.在action中注入服务对象需要插件struts2-spring-plugin-2.2.1.jar,不然当你调用service里的方法的时候会抛出一个大大的空指针异常

    /**
     * 在action中注入服务对象需要插件struts2-spring-plugin-2.2.1.jar
     * 使用spring注入服务
     */
    @Autowired
    private UserService userService;

今天突发奇想的想把以前写的东西用ssh改写,所以仅靠spring in action里spring配置hibernate的小例子整合一下。百度了一天,光是丢包少包和包冲突都搞了好久。而且一开始还不打算陪置spring管理事务的,百度时看到这样比较好才又配的。

lvds接口_LVDS,接口,时序讲解,非常好的文章 欢迎FPGA工程师加入官方微信技术群点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群1.1.1 LVDS接口分类1.1.1.1 单路6bit LVDS这种接口电路中,采用单路方式传输,每个基色信号采用6位数据,共18位RGB数据,因此,也称18位或18bit LVDS接口。此,也称18位或18bit LVDS接口。1.1.1.2 双路6bit LVDS这种接口电... 阅读详情

相关推荐

告别手动标注!用ENVI Classic高效搞定高光谱图像语义分割标签(以农业/地物分类为例)

本文详细介绍了如何利用ENVI Classic实现高光谱图像的半自动化智能标注,特别针对农业和地物分类场景。通过光谱特征分析、智能标注技巧和MAT文件转换,显著提升标注效率和质量,助力AI模型训练。

weixin_28694169的博客 251

SSH使用心得:命令、原理、实战与注意事项全解析

SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录和其他加密网络服务。基于SSH协议的远程控制软件能够为用户提供一个安全的网络数据传输通道。

随遇而安 942

告别串口助手!手把手教你用Matlab直接读取STM32的传感器数据(附完整代码)

本文详细介绍了如何利用Matlab直接与STM32进行串口通信,实现传感器数据的实时采集与分析。通过完整的代码示例和系统架构设计,帮助开发者告别传统的串口助手工具链,打造高效、自动化的数据采集系统。文章涵盖了从硬件配置、通信协议设计到Matlab数据处理与可视化的全流程,特别适合嵌入式开发与数据分析结合的实践场景。

weixin_42629671的博客 430

【Linux】SSH:远程连接

SSH端口转发是一种通过SSH协议将网络流量从一个端口安全地转发到另一个端口的方式。它主要有三种类型:本地端口转发、远程端口转发和动态端口转发。本地端口转发允许你将本地计算机的某个端口流量转发到远程主机的指定端口。远程端口转发允许你将远程主机的某个端口流量转发到本地计算机的指定端口。所有通过这个代理的流量都会通过SSH隧道安全地转发到远程主机。这个命令允许你通过指定端口连接SSH服务,进行文件传输。这个命令将指定的本地文件上传到远程主机的指定目录。通过这个命令,你可以将远程主机上的文件下载到本地。

2303_80346267的博客 1万+

STM32使用LORA模块通信

目录 一、模块使用方法 1、模块简介 2、硬件及功能 3、传输方式 二、模块上手 1、连接 2、编写代码 usart3.h usart3.c lora.h lora.c 一、模块使用方法 本文以正点原子ATK-LORA-01模块为例进行介绍。 1、模块简介 ATK-LORA-01-V3.0(V3.0是版本号,下面均以ATK-LORA-01表示该产品)是ALIENTEK推出的一款体积小、微功率、低功耗、高性能远距离LORA无线串口模块。模块设计是采用高效的IS...

qq_54706971的博客 3万+

ROS2 Nav2实战:解决rviz2显示no map received的3种实用方法(附详细步骤)

本文针对ROS2 Nav2导航栈中rviz2显示“no map received”的常见问题,提供了三种核心解决方案。深入剖析了问题根源在于ROS2生命周期节点管理、QoS策略不匹配及坐标系设置错误,并分别通过手动配置流程、集成生命周期管理器以及调优QoS策略与固化rviz2配置,给出了详细的实战步骤,确保地图数据可靠显示。

j0k1l2m3n的博客 422

整合SSH框架及常见问题解决

如何快速的搭建javaweb应用框架是每一个java程序员必做的事情,通过自己的学习也是初步的可以搭建好ssh框架。下面是详细搭建过程及一些途中遇到的问题和解决方案,博主使用的是myeclipse,方便框架导入 - 新建工程 - 导入spring框架 - 导入Struts框架 - 导入hibernate框架 - 整合配置文件 - spring配置常用bean - 常见问题spring

u012295876的博客 5633

LiteratureReading:[2022] Reformer: The Efficient Transformer

所属机构:加州大学伯克利分校(U.C. Berkeley)和谷歌研究(Google Research)。电子邮件:kitaev@cs.berkeley.edu所属机构:谷歌研究(Google Research)。电子邮件:lukaszkaiser@google.com所属机构:谷歌研究(Google Research)。电子邮件:levskaya@google.com大型Transformer模型在许多任务上通常能够达到最先进的结果,但训练这些模型可能非常昂贵,尤其是在处理长序列时。

有朋自远方来,不亦乐乎。 1232

SSH 注意事项

Hibernate   Xml xml version="1.0"encoding="UTF-8"?> DOCTYPE hibernate-mapping PUBLIC     "-//Hibernate/Hibernate Mapping DTD3.0//EN"     "http://hibernate.sourceforge.net/hibernate-map

ChanYee的博客 769

智慧安防:基于Java+YOLOv8的视频AI识别平台设计与实现

张工,我们的园区智慧安防项目又出问题了!用Python写的YOLOv8 demo,拉3路RTSP流就卡,视频延迟超过5秒,入侵检测误报率太高,一到晚上光线差就全是误报,而且和我们的Java安防平台对接太麻烦,还要搭个消息队列,架构复杂得要死!“别慌,用Java+YOLOv8啊!

2601_94871597的博客 196

百万 Token 压力实测:1M Context 的真实能力边界在哪里?

本文揭示了长上下文模型的性能衰减规律:1M上下文存在"容量曲线"与"质量曲线"的分歧,512K是可靠拐点。通过MRCR测试发现,不同任务类型衰减差异显著——检索任务在512K后性能下降30.6%,而生成任务仅下降5%。研究提出三阶段补偿策略:三明治注入(首尾指令强化)、语义面包屑(位置标记)、引用检查(强制溯源),可将512K-1M区间的可用性提升20%。工程实践表明,中段区域(30-70%位置)是注意力薄弱区,需要特殊处理。最终建议:关键检索任务控制在512K内,关联推理任务可扩展至

liuzhupeng的专栏 341

搭建SSH框架顺序和注意事项

环境为 myeclipse8.6  数据库 mysql5.0  Jdk 1.6 WindowsXp  TomCat 6.0 首先创建一个 New  =>  Web Project  起名 demo   然后在项目名称上 点击鼠标右键 选择 MyEclipse => Add Speing Capabilites...   接下来 就是选择需要加载 Spring 的版本 我在这里选择

a281246240的专栏 1922

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

整合SSH所需要的配置及注意事项

整合SSH所需要的配置及注意事项目录说明项目的结构配置web.xml配置struts.xml配置applicationContext.xml配置User.hbm.xml配置jdbc.properties总结 目录 说明 整合SSH的环境是:Eclipse+Tomcat 服务器+Access数据库。 项目的结构 图片: 配置web.xml 在整合ssh框架时需要先在web.xml中分别配置st...

qq_37051166的博客 417

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SSH整合注意事项

Sping4+Hibernate3+Struts2注解配置整合注意事项: ①在Spring配置文件aplicationContext.xml文件中配置自动扫描Serivce服务类和Dao类的注解包 &lt;context:component-scan base-package="com.aclik.action,com.aclik.dao.impl,com.aclik.service.im...

Not Bug,EveryDay 222

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

ssh--整合注意事项

配置环境spring4+hibernate4+struts2首先在web.xml文件中加下面这行,默认会在applicationContext.xml文件中加载配置。applicationContext.xml要放在WEB-INF下。 <!--监听器,初始化spring容器 --> <listener> <listener-c...

weixin_34326179的博客 99

ssh2框架整合注意事项

ssh2框架整合注意事项: web.xml:         contextConfigLocation              /WEB-INF/applicationContext.xml             org.springframework.web.context.ContextLoaderListener   struts.xml:

陈正的博客 771

SSH2整合注意事项

ssh2  即 struts2 +spring2.5+hibernate3.2 (一)--jar包   我使用的开发环境为 Myeclipse6.5 + struts2.1.6 + spring2.5 + hibernate3.2 + Myeclipse6.5自带tomcat6.0 首先我喜欢用工具,工具就是为了方便么,所以spring和hibernate的加载都是Myeclipse自动生

1398

SSH整合时jar包冲突解决的注意事项

在SSH项目整合的时候,要注意jar包冲突.     这里的原则是:     1,无依赖关系的舍低取高.     2.有依赖关系的取高。 怎么排查是否有冲突,在服务器项目的lib下查看是否有重名的。     注意:每次重新导入包以后要把服务器中的项目删掉再发布。

u012453607的专栏 1657

IntelliJ IDEA-SSH整合以及项目学习

整合ssh入门 把jsp文件放到WEB-IF下面注意事项 https://www.cnblogs.com/x_wukong/p/3969114.html https://blog.csdn.net/weixin_37778823/article/details/80648533

茨时代べ 的博客 397

关于SSH整合后,启动Myeclipse读取缓存注意事项

今天启动MyEclipse后,当Hibernate读取数据库信息的时候停滞不前,后来发现如果类文件中或者Jar包中有断点的话,系统会先读到断点处,如果不做处理就不会继续读取配置文件中其他的信息,所以下次发下读取不了的时候 记得清除项目中类文件或者Jar包中的断点即可启动...

淡淡の擱淺 120

ssh的整合

通过mvc的形式对ssh进行整合 demo的下载 package com.shandian.dao; import java.util.List; import com.shandian.bean.Users; public interface IUserInfoDao { // 登录模块 Users login(Users users); // 全查

ArryLuo123的博客 860

SSH框架整合步骤及注意点

SSH框架也就是Struts2、Spring和Hibernate 在一个Web项目里面整合SSH框架,自己总结的注意点 在Web.xml中要配置监听器,让项目启动的时候,就在applicationContext域中加载Spring的核心配置文件 &lt;!--Spring的核心监听器--&gt; &lt;listener&gt; &lt;listener-class&g...

shijiujiu33的博客 376

SSH框架整合web项目演示

一、SSH框架整合思想 二、SSH框架整合 使用到的技术:Struts2 + hibernate5.x + spring4.x + mysql数据库 三、扩展

狗头神教 635

SSH整合之后获得Session的方法

 SSH整合之后获得Session的方法   1.使用继承 SuperDao:  包含SessionFactory获得的方法 PersonDaoImpl 继承SuperDao 和 实现PersonDao   spring里面的配置文件如下: 配置superDao --> 配置具体Dao-->   备注:父类的 abstract="true"

每天都得进步一点点 3431
上一篇: Cookie小技巧
下一篇: SSM框架——整合注意事项
github_32658299
博客等级 码龄11年 21粉丝 33原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值