Spring.net的初次使用(3)--关于配置文件

using System;
using System.Collections.Generic;
using System.Text;
using Ivan.Spring.Model;
using Ivan.Spring.Bll;
using System.Collections;
using System.IO;
using System.Configuration;
namespace Ivan.Spring
{
    
public class MainStart
    
{
        
public MainStart()
        
{
            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
        }

        
        
public static void Main()
        
{

            SpringContext.init();

           




            
//UserManager userManager = SpringContext.Context.GetObject("UserManager") as UserManager;

            
//#region 入库操作
            ////User user =new User();
            
////user.Id = "liluhua2";
            
////user.Password = "123456";
            
////user.LastLogon = DateTime.Now;
            
////user.UserName="dddd";
            
////userManager.SaveObject(user);

            //#endregion

            
//IList list = userManager.GetAllUserList();
            
//foreach (User _user in list)
            
//{
            
//    Console.WriteLine("用户ID:" + _user.Id + ",用户密码:" + _user.Password + ",用户姓名:" + _user.UserName);
            
//}
            
//Console.ReadLine();//程序停留
        }

    }

}

SpringContext.cs
using System;
using Spring.Core;
using Spring.Aop;
using Spring.Context;
using Spring.Context.Support;
namespace Ivan.Spring
{
    
public class SpringContext
    
{
        
public SpringContext()
        
{
            
//
            
// TODO: 在此处添加构造函数逻辑
            
//
        }


        
private static bool isInit = false;

        
private static IApplicationContext context;
        
public static void init()
        
{
            
string[] xmlFiles = new string[3];
            xmlFiles[
0= "assembly://RunSpring/Ivan.Spring/spring.net_bean_nhibernate.xml";
            xmlFiles[
1= "assembly://RunSpring/Ivan.Spring/spring.net_bean_business.xml";
            xmlFiles[
2= "assembly://RunSpring/Ivan.Spring/spring.net_bean_app.xml";
            
//xmlFiles[3] = "assembly://RunSpring/Ivan.Spring/spring.net_bean_web.xml";
            
//xmlFiles[4] = "assembly://RunSpring/Ivan.Spring/spring.net_bean_web_base.xml";

            context 
= new XmlApplicationContext(xmlFiles);
            isInit 
= true;
        }


        
public static IApplicationContext Context
        
{
            
get
            
{
                
if (!isInit)
                
{
                    init();
                }

                
return context;
            }

        }

    }

}

MainStart.cs
所有的xml文件属性都要设置成 嵌入式资源
spring.net_bean_nhibernate.xml
<?xml version="1.0" encoding="utf-8" ?>
<objects xmlns='http://www.springframework.net'>
  
<object id="SystemInit" type="Ivan.Spring.SystemInit,RunSpring" init-method="Start" destroy-method="Stop">
    
<constructor-arg name="IsDebug" value="true"/>
  
</object>
  
<!--配制数据库的表头几个字母-->
  
<!--<object id="NamingStrategy" type="FastSpring.NHibernate.NamingStrategyCore,FastSpring.Net" >
    <property name="TableHead" value="TOK_"/>
  </object>
-->
  
<!--以下这个配置是为了单元测试时候连接数据库-->
  
<!--<object id="DbProvider" type="Spring.Data.Common.DbProviderFactoryObject,Spring.Data">
    <property name="Provider" value="SqlServer-2.0"/>
    <property name="ConnectionString" value="Data Source=127.0.0.1;Database=OfficeOnline;User ID=sa;Password=;Trusted_Connection=False"/>
  </object>
-->
  
<object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate">
    
<!--<constructor-arg name="NamingStrategy" ref="NamingStrategy"/>-->
    
<property name="DbProvider" ref="DbProvider"/>
    
<property name="MappingAssemblies">
      
<list>
        
<value>RunSpring</value>
      
</list>
    
</property>
    
<property name="HibernateProperties">
      
<dictionary>
        
<entry key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider"/>
        
<entry key="hibernate.dialect" value="NHibernate.Dialect.MsSql2000Dialect"/>
        
<entry key="hibernate.connection.driver_class" value="NHibernate.Driver.SqlClientDriver"/>
        
<entry key="hibernate.connection.isolation" value="ReadCommitted"/>
      
</dictionary>
    
</property>
  
</object>
  
<object id="HibernateTransactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate">
    
<property name="DbProvider" ref="DbProvider"/>
    
<property name="sessionFactory" ref="SessionFactory"/>
  
</object>
  
<object id="TransactionInterceptor" type="Spring.Transaction.Interceptor.TransactionInterceptor, Spring.Data">
    
<property name="TransactionManager" ref="HibernateTransactionManager"/>
    
<property name="TransactionAttributeSource">
      
<object type="Spring.Transaction.Interceptor.AttributesTransactionAttributeSource, Spring.Data"/>
    
</property>
  
</object>
</objects>

spring.net_bean_business.xml
<?xml version="1.0" encoding="utf-8" ?>
<!-- 业务层的对像定义 DAO & Manager -->
<objects xmlns='http://www.springframework.net'>
  
<object id="DaoBase" abstract="true" type="Ivan.Spring.Dao.DaoBase,RunSpring">
    
<property name="SessionFactory" ref="SessionFactory"/>
  
</object>
  
<object id="UserDao" type="Ivan.Spring.Dao.UserDao,RunSpring" parent="DaoBase">
   
  
</object>
  
<object id="UserManager" type="Ivan.Spring.Bll.UserManager,RunSpring">
    
<property name="UserDao" ref="UserDao"/>
  
</object>
</objects>
spring.net_bean_app.xml
<?xml version="1.0" encoding="utf-8" ?>
<!-- 应用层的对像定义 -->
<objects xmlns='http://www.springframework.net'>
</objects>

 

为了能他在WEB项目中引用还需要配置WEB层的文件

spring.net_bean_web.xml

<?xml version="1.0" encoding="utf-8" ?>
<!-- WEB层的页面对像定义 -->
<objects xmlns='http://www.springframework.net'>
  
<object id="Default" type="Default.aspx" parent="basePage">
    
<property name="UserManager" ref="UserManager" />
  
</object>
</objects>

spring.net_bean_web_base.xml  可以不需要设置基类页 可以将basePage注释掉

<?xml version="1.0" encoding="utf-8" ?>
<!-- WEB层的基本对像定义 BasePage -->
<objects xmlns='http://www.springframework.net'>
  
<object id="basePage" abstract="true">
    
<!--<property name="MasterPageFile" value="~/MasterPage.master"/>-->
    
<!--property name="CultureResolver" ref="cultureResolver"/>
    <property name="Localizer" ref="localizer"/>
    <property name="CssRoot" value="~/Web/CSS"/>
    <property name="ImagesRoot" value="~/Web/Images"/>
    <property name="ScriptsRoot" value="~/Scripts" /
-->
  
</object>
</objects>


 

posted @ 2007-06-01 17:17  迪迪Ivan  阅读(955)  评论(0)    收藏  举报