栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Spring应用程序似乎没有持久化数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring应用程序似乎没有持久化数据

确保

<context:component-scan.../>
两个xml配置中都没有完全重复的元素。如果有此功能,则基本上是在复制所有bean实例。您最初拥有的所有豆都由装载,
ContextLoaderListener
由于存在,这些代理被代理了
<tx:annotation-driven />

现在,如果您

<context:component-scan .../>
在payment-
servlet.xml中具有相同的名称,则将再次扫描所有创建另一个实例的bean,但是由于不存在该事实,因此不会
<tx:annotation-driven/>
对其进行代理并且不会应用任何事务。

现在发生的事情是,一旦您需要一个带

@Service
注释的bean,
DispatcherServlet
它就会首先看起来自己,
ApplicationContext
以查看是否有bean可以满足其需求。如果有的话(当前情况)将要使用(如果没有),它将查询父上下文(由加载的上下文
ContextLoaderListener
)。

你需要做的是配置

ContextLoaderListener
扫描都
@Controller
注释豆类和
DispatcherServlet
扫描
用于
@Controller
注解的bean。可以通过
<context:component-scan .../>
正确配置来完成。

applicationContext.xml

<context:component-scan base-package="com.appn.payment">  <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /></context:component-scan>

付款servlet.xml

<context:component-scan base-package="com.appn.payment" use-default-filters="false">  <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" /></context:component-scan>

这将为您提供事务,并且仅提供bean的单个实例。您应该

<tx:annotation-driven />
从Payment-
servlet.xml文件中删除。

JIRA尚有一个未解决的问题,可以将其包含在参考指南中。spring社区论坛中的一个线程对此进行了解释。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/430520.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号