您的位置:首页 > 编程语言 > Java开发

终于配置好了winform下的Nhibernate+Spring.Net的框架模板,遇到的问题还真多...不过成熟了很多....

2010-08-06 10:41 627 查看
首先还是要高兴一下,今天配置好了这套框架就是以后开发的模板了,大大的提高了程序 的稳定性,提高了开发的效率。

今天把配置过程中遇到的问题汇总一下:

1.先将配置文件放到如下:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!--Spring配置声明-->
<sectionGroup name="spring">
<section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
<section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
<section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core" />
</sectionGroup>
</configSections>
<connectionStrings>
<!--批量数据上传-->
<add name="ConnStr" connectionString="server=.;uid=sa;pwd=123;database=spt;"/>
</connectionStrings>
<!--Spring配置声明-->
<spring>
<parsers>
<parser type="Spring.Data.Config.DatabaseNamespaceParser, Spring.Data" />
<parser type="Spring.Transaction.Config.TxNamespaceParser, Spring.Data" />
</parsers>
<context>
<!--<resource uri="~/Configs/CommonDao.xml" />-->
<resource uri="file://~/Configs/CommonDao.xml" />
<resource uri="~/Configs/UserDao.xml" />
<resource uri="~/Configs/UserService.xml" />
<resource uri="~/Configs/Form.xml" />
</context>
</spring>
<appSettings>
</appSettings>
</configuration>


对于配置中的外接的xml文件,如上面所示的:<resource uri="file://~/Configs/CommonDao.xml" /> 必须将这个xml文件的属性:输出到输出目录设置为始终复制,因为~代表的是项目生成后exe所在的目录。不如出现错误同http://forum.springframework.net/archive/index.php/t-2929.html 这个论坛上面学到了很多,希望大家常去逛逛。呵呵

2.下面写下我的commonDao.xml

<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns="http://www.springframework.net"
xmlns:tx="http://www.springframework.net/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:db="http://www.springframework.net/database">
<!-- Database and NHibernate Configuration -->
<db:provider id="DbProvider"
provider="SqlServer-2.0"
connectionString="server=.;uid=sa;pwd=123;database=spt;"/>
<object id="NHibernateSessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate12">
<property name="DbProvider" ref="DbProvider"/>
<property name="MappingAssemblies">
<list>
<value>Hksj.CommonApp.DaoHibernate</value>
</list>
</property>
<property name="HibernateProperties">
<dictionary>
<entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />
<entry key="hibernate.dialect" value="NHibernate.Dialect.MsSql2005Dialect" />
<entry key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver" />
<!--<entry key="show_sql" value="true" />-->
</dictionary>
</property>
</object>
<object id="HibernateTransactionManager"
type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate12">
<property name="DbProvider" ref="DbProvider"/>
<property name="SessionFactory" ref="NHibernateSessionFactory"/>
</object>
<object id="HibernateTemplate" type="Spring.Data.NHibernate.HibernateTemplate">
<property name="SessionFactory" ref="NHibernateSessionFactory" />
<property name="TemplateFlushMode" value="Auto" />
<property name="CacheQueries" value="true" />
</object>
</objects>


其中又报错:session不能create

后来发现:<property name="MappingAssemblies">

<list>

<value>Hksj.CommonApp.DaoHibernate
</value>

</list>

</property>配置的加粗部分是类的映射文件所在项目集的名称,在右击项目属性里面拷贝出来,我的有点变化,所有老是报错。

配置好了,错误怎么查看,一定要点开里面innerexception

如下图所示:


3.类映射文件的属性一定设置为嵌入资源

4. IApplicationContext ctx = ContextRegistry.GetContext();

Form1 form = ctx.GetObject("Form1") as Form1;

cs的程序需要我们自己去get,不像web那么方便,最好实现一个工厂接口,然后都从那里获取。

遇到的问题不少,在这也不说了。还是高兴一下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐