• Using Spring in Web and WinForms


    假设Solution中有3个Project: TheSolution.Bll, WebAppUsingSpring, WinFormsAppUsingSpring. 其中TheSolution.Bll会被后2者调用, 需要在后2者中使用Spring配置.

    1. 准备

    2. 配置WinFormsAppUsingSpring

    3. 配置WebAppUsingSpring

     

    • 准备

    两个项目中都要使用的 Objects.TheSolution.Bll.xml 

    <?xml version="1.0" encoding="utf-8" ?>
    <objects xmlns="http://www.springframework.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

        
    <!--=========================== Biz Objects ===========================-->
        
    <object name="vehicle" type="TheSolution.Bll.BizImpl.Vehicle, TheSolution.Bll">
            
    <property name="Fuel" value="300"></property>
        
    </object>

        
    <object name="bike" type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core">
            
    <property name="TargetObject" ref="vehicle"/>
            
    <property name="TargetProperty" value="Bike"/>
        
    </object>

        
    <object name="plane" type="Spring.Objects.Factory.Config.PropertyRetrievingFactoryObject, Spring.Core">
            
    <property name="TargetObject" ref="vehicle"/>
            
    <property name="TargetProperty" value="Plane"/>
        
    </object>

    </objects>
    • 配置WinFormsAppUsingSpring

    本项目的 Objects.WinFormsAppUsingSpring.xml 

    <?xml version="1.0" encoding="utf-8" ?>
    <objects xmlns="http://www.springframework.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

        
    <!--=========================== UI Objects ===========================-->
        
    <object name="mainForm" type="WinFormsAppUsingSpring.Form1">
            
    <property name="Text" value="UsingSpring : Bike and Plane"></property>
            
    <property name="Bike" ref="bike"></property>
            
    <property name="Plane" ref="plane"></property>
        
    </object>

    </objects>

    配置app.config  

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        
    <configSections>
            
    <sectionGroup name="spring">
                
    <section name="context" type="Spring.Context.Support.ContextHandler, Spring.Core" />
                
    <section name="objects" type="Spring.Context.Support.DefaultSectionHandler, Spring.Core" />
            
    </sectionGroup>
        
    </configSections>
        
    <spring>
            
    <context type="Spring.Context.Support.XmlApplicationContext, Spring.Core">
                
    <resource uri="file://Objects.WinFormsAppUsingSpring.xml" />
                
    <resource uri="file://Objects.TheSolution.Bll.xml" />
            
    </context>
        
    </spring>
    </configuration>
    • 配置WebAppUsingSpring

    本项目的 Objects.WebAppUsingSpring.xml  

    <?xml version="1.0" encoding="utf-8" ?>
    <objects xmlns="http://www.springframework.net" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

          <!--=========================== Pages/WebUserControls ===========================-->
        
    <object type="Default.aspx">
            
    <property name="Bike" ref="bike"/>
            
    <property name="Plane" ref="plane"/>        
        
    </object>

        
    <object type="WebUserControl1.ascx">
            
    <property name="Bike" ref="bike"/>
            
    <property name="Plane" ref="plane"/>
        
    </object>

    </objects>

    配置web.config 

    <?xml version="1.0"?>

    <configuration>
        <configSections>
            <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                    <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
                    <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
                        <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere" />
                        <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
                        <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
                        <section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication" />
                    </sectionGroup>
                </sectionGroup>
            </sectionGroup>


            <!--============================ Spring Section ============================-->
            <sectionGroup name="spring">
                <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web"/>
            </sectionGroup>


        </configSections>

        <!--============================ Spring Resources ============================-->
        <spring>
            <context>
                <resource uri="~/Objects.WebAppUsingSpring.xml"/>
                <resource uri="~/Objects.TheSolution.Bll.xml"/>
            </context>
        </spring>




        <appSettings/>
        <connectionStrings/>


        <system.web>
            <!-- 
                Set compilation debug="true" to insert debugging 
                symbols into the compiled page. Because this 
                affects performance, set this value to true only 
                during development.
            -->
            <compilation debug="false">

                <assemblies>
                    <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                    <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                    <add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                    <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                </assemblies>

            </compilation>
            <!--
                The <authentication> section enables configuration 
                of the security authentication mode used by 
                ASP.NET to identify an incoming user. 
            -->
            <authentication mode="Windows" />
            <!--
                The <customErrors> section enables configuration 
                of what to do if/when an unhandled error occurs 
                during the execution of a request. Specifically, 
                it enables developers to configure html error pages 
                to be displayed in place of a error stack trace.

            <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
            -->

            <pages>
                <controls>
                    <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                    <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                </controls>
            </pages>

            <httpHandlers>
                <remove verb="*" path="*.asmx"/>
                <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>

                <!--============================ Spring HttpHandler ============================-->
                <add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>

            </httpHandlers>



            <httpModules>
                <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                
                <!--============================ Spring HttpModule ============================-->
                <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>

            </httpModules>

        </system.web>

        <system.codedom>
            <compilers>
                <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4"
                          type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
                    <providerOption name="CompilerVersion" value="v3.5"/>
                    <providerOption name="WarnAsError" value="false"/>
                </compiler>
            </compilers>
        </system.codedom>

        <!-- 
            The system.webServer section is required for running ASP.NET AJAX under Internet
            Information Services 7.0.  It is not necessary for previous version of IIS.
        -->
        <system.webServer>

            <validation validateIntegratedModeConfiguration="false"/>

            <modules>
                <remove name="ScriptModule" />
                <add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                
                
                <!--============================Spring IIS7===================================-->
                <!--
                <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/>
                -->

            </modules>


            <handlers>
                <remove name="WebServiceHandlerFactory-Integrated"/>
                <remove name="ScriptHandlerFactory" />
                <remove name="ScriptHandlerFactoryAppServices" />
                <remove name="ScriptResource" />
                <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode"
                     type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode"
                     type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
                
                
                <!--============================Spring IIS7===================================-->
                <!--
                <add name="SpringPageHandler" verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/>
                <add name="SpringContextMonitor" verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web"/>
                -->

            </handlers>
        </system.webServer>

        <runtime>
            <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
                <dependentAssembly>
                    <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
                    <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
                </dependentAssembly>
                <dependentAssembly>
                    <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
                    <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
                </dependentAssembly>
            </assemblyBinding>
        </runtime>

    </configuration>
    IApplicationContext springAppCtx = ContextRegistry.GetContext();
                
    this.HotKeyManager = (IHotKeyManager)springAppCtx.GetObject("hotKeyManager");

  • 相关阅读:
    Android的LinearLayout中的权重android:layout_weight
    iPhone尺寸规范
    导出iPhone中安装的APP的iPA文件
    c++ json字符串转换成map管理
    mac 升级EI Capitan后遇到c++转lua时遇到libclang.dylib找不到的错
    sqlite3 数据库使用
    关于flyme5显示不到和卸载不到旧应用解决方法
    cocos2dx 通过jni调用安卓底层方法
    cocos2dx 单张图片加密
    安卓线程使用问题
  • 原文地址:https://www.cnblogs.com/mrfangzheng/p/1199766.html
Copyright © 2020-2023  润新知