Castle学习笔记二:框架结构及配置
2010-01-14 17:03
477 查看
参考网络文章,并结合现有项目进行学习,熟悉框架结构及其配置。
现有项目和案例项目的结构有一点不同,但大致结构差不多,都包括:
Domain:系统领域,所有数据库实体的对象,数据载体,在其他各个层都要用到。
Persistence:持久层,持久化数据到数据库,其中包括Interface(接口)和mapperDao(实现)
Service:服务层,系统用到的所有业务方法,调用Persistence层,其中包括Implement(实现)和Interface(接口)
Web:页面层(最终与用户交互)
Common:系统公共层,包括公用方法和类
关于配置:
1. 首先需要配置web.config文件,供Castle使用。需要将web.config放在Web应用程序的根目录下,Castle会自动从web.config中读取。
<!--在<configuration>节点下新值-->
<configSections>
<section name="castle" type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor"/>
</configSections>
<castle>
<!--扩展castle,将ibatisnet当作插件和castle相结合-->
<include uri="file://Config/Facilities.config"/>
<!--告诉castel哪个接口由哪个类实现-->
<include uri="file://Config/Services/Services.config"/>
<!--Persistence层的SqlMapDao-->
<include uri="file://Config/Persistence/Sample.config"/>
</castle>
<system.web>
<!--
<pages/>
<httpHandlers>...</httpHandlers>
<httpModules>...</httpModules>
...很多配置
-->
</system.web>
2. Facilities.config文件的配置
<configuration>
<facilities>
<facility id="logging" type="Castle.Facilities.Logging.LoggingFacility, Castle.Facilities.Logging" loggingApi="log4net" configfile="log4net.config"/>
<!--为Castle 扩展 ibatisnet-->
<facility id="ibatis" type="Castle.Facilities.IBatisNetIntegration.IBatisNetFacility, Castle.Facilities.IBatisNetIntegration" >
<sqlMap id="SqlServerSqlMap" config="SqlMap.config" />
<!--支持多数据源,但是需要配套的SqlMap.config文件和properties.config文件,并且需要在Persistence声明新的ISqlMapper,同时需要修改构造函数,使Castle能够通过IOC进行实例化
<sqlMap id="SqlMapLocal" config="SqlMapLocal.config" />
-->
</facility>
<facility id="biztiminghandle" type="Castle.Facilities.BizTimingHandle.BizTimingHandleFacility, Castle.Facilities.BizTimingHandle" />
<!--支持业务层事务,为Castle扩展事务处理功能-->
<facility id="transaction" type="Castle.Facilities.AutomaticTransactionManagement.TransactionFacility, Castle.Facilities.AutomaticTransactionManagement" />
</facilities>
</configuration>
这样castle就可以自动将ibatisnet管理起来了,需要ibatisnet的时候会自动运行ibatisnet.
3. Service.config文件的配置
<configuration>
<components>
<component id="YourSolution.AaBiz" service="YourSolution.Service.IAaBiz,YourSolution.Service" type="YourSolution.Service.AaBiz,YourSolution.Service"/>
<component id="YourSolution.BbBiz" service="YourSolution.Service.IBbBiz,YourSolution.Service" type="YourSolution.Service.BbBiz,YourSolution.Service"/>
<!--其他-->
</components>
</configuration>
可以发现:服务(接口)IAaBiz由AaBiz类实现,Castle会自动装配,即在请求需要调用IAaBiz接口中的方法时,会自动实例化AaBiz类,并调用其中相应的方法。
4. iBatisNet的配置文件sqlmap.config的配置
<sqlMapConfig
xmlns="http://ibatis.apache.org/dataMapper"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- providers.config 文件的路径,Web Application的项目名称-->
<properties embedded="YourSolution.Web.Properties.config,YourSolution.Web" />
<settings>
<setting useStatementNamespaces="false"/>
</settings>
<providers resource="Config/Providers.config"/>
<database>
<!--其中的参数在Properties.config中设置-->
<provider name="${provider}"/>
<dataSource name="DocumentSystem" connectionString="${connectionString}"/>
</database>
<sqlMaps>
<sqlMap embedded="${root}CnTypeGenMap.xml,${assembly}" />
<sqlMap embedded="${root}CnTypeMap.xml,${assembly}" />
<!--其他Map...-->
</sqlMaps>
</sqlMapConfig>
以上设置iBatisNet对实体进行数据库操作的sqlmap.
5. dao.config文件的配置
咦?为什么在项目中没有找到dao.config,也没有找到dao的相关配置呢?
参考文章中的dao.config配置:
<daoConfig xmlns="http://ibatis.apache.org/dataAccess" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<context id="SqlMapDao" default="true">
<daoSessionHandler id="SqlMap">
<property name="resource" value="sqlMap.config"/>
</daoSessionHandler>
<daoFactory>
<dao interface="ATS.Persistence.Interface.IEmployeesDao, ATS.Persistence" implementation="ATS.Persistence.MapperDao.EmployeesSqlMapDao, ATS.Persistence"/>
</daoFactory>
</context>
</daoConfig>
主要是<daoFactory>节点的设置,dao运行时的接口对应的实现类,即:IEmployeesDao 由EmployeesSqlMapDao实现
主要参考:http://hi.baidu.com/tlq_1983/blog/item/28b4aef5edfd9920bc3109c1.html
现有项目和案例项目的结构有一点不同,但大致结构差不多,都包括:
Domain:系统领域,所有数据库实体的对象,数据载体,在其他各个层都要用到。
Persistence:持久层,持久化数据到数据库,其中包括Interface(接口)和mapperDao(实现)
Service:服务层,系统用到的所有业务方法,调用Persistence层,其中包括Implement(实现)和Interface(接口)
Web:页面层(最终与用户交互)
Common:系统公共层,包括公用方法和类
关于配置:
1. 首先需要配置web.config文件,供Castle使用。需要将web.config放在Web应用程序的根目录下,Castle会自动从web.config中读取。
<!--在<configuration>节点下新值-->
<configSections>
<section name="castle" type="Castle.Windsor.Configuration.AppDomain.CastleSectionHandler, Castle.Windsor"/>
</configSections>
<castle>
<!--扩展castle,将ibatisnet当作插件和castle相结合-->
<include uri="file://Config/Facilities.config"/>
<!--告诉castel哪个接口由哪个类实现-->
<include uri="file://Config/Services/Services.config"/>
<!--Persistence层的SqlMapDao-->
<include uri="file://Config/Persistence/Sample.config"/>
</castle>
<system.web>
<!--
<pages/>
<httpHandlers>...</httpHandlers>
<httpModules>...</httpModules>
...很多配置
-->
</system.web>
2. Facilities.config文件的配置
<configuration>
<facilities>
<facility id="logging" type="Castle.Facilities.Logging.LoggingFacility, Castle.Facilities.Logging" loggingApi="log4net" configfile="log4net.config"/>
<!--为Castle 扩展 ibatisnet-->
<facility id="ibatis" type="Castle.Facilities.IBatisNetIntegration.IBatisNetFacility, Castle.Facilities.IBatisNetIntegration" >
<sqlMap id="SqlServerSqlMap" config="SqlMap.config" />
<!--支持多数据源,但是需要配套的SqlMap.config文件和properties.config文件,并且需要在Persistence声明新的ISqlMapper,同时需要修改构造函数,使Castle能够通过IOC进行实例化
<sqlMap id="SqlMapLocal" config="SqlMapLocal.config" />
-->
</facility>
<facility id="biztiminghandle" type="Castle.Facilities.BizTimingHandle.BizTimingHandleFacility, Castle.Facilities.BizTimingHandle" />
<!--支持业务层事务,为Castle扩展事务处理功能-->
<facility id="transaction" type="Castle.Facilities.AutomaticTransactionManagement.TransactionFacility, Castle.Facilities.AutomaticTransactionManagement" />
</facilities>
</configuration>
这样castle就可以自动将ibatisnet管理起来了,需要ibatisnet的时候会自动运行ibatisnet.
3. Service.config文件的配置
<configuration>
<components>
<component id="YourSolution.AaBiz" service="YourSolution.Service.IAaBiz,YourSolution.Service" type="YourSolution.Service.AaBiz,YourSolution.Service"/>
<component id="YourSolution.BbBiz" service="YourSolution.Service.IBbBiz,YourSolution.Service" type="YourSolution.Service.BbBiz,YourSolution.Service"/>
<!--其他-->
</components>
</configuration>
可以发现:服务(接口)IAaBiz由AaBiz类实现,Castle会自动装配,即在请求需要调用IAaBiz接口中的方法时,会自动实例化AaBiz类,并调用其中相应的方法。
4. iBatisNet的配置文件sqlmap.config的配置
<sqlMapConfig
xmlns="http://ibatis.apache.org/dataMapper"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!-- providers.config 文件的路径,Web Application的项目名称-->
<properties embedded="YourSolution.Web.Properties.config,YourSolution.Web" />
<settings>
<setting useStatementNamespaces="false"/>
</settings>
<providers resource="Config/Providers.config"/>
<database>
<!--其中的参数在Properties.config中设置-->
<provider name="${provider}"/>
<dataSource name="DocumentSystem" connectionString="${connectionString}"/>
</database>
<sqlMaps>
<sqlMap embedded="${root}CnTypeGenMap.xml,${assembly}" />
<sqlMap embedded="${root}CnTypeMap.xml,${assembly}" />
<!--其他Map...-->
</sqlMaps>
</sqlMapConfig>
以上设置iBatisNet对实体进行数据库操作的sqlmap.
5. dao.config文件的配置
咦?为什么在项目中没有找到dao.config,也没有找到dao的相关配置呢?
参考文章中的dao.config配置:
<daoConfig xmlns="http://ibatis.apache.org/dataAccess" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<context id="SqlMapDao" default="true">
<daoSessionHandler id="SqlMap">
<property name="resource" value="sqlMap.config"/>
</daoSessionHandler>
<daoFactory>
<dao interface="ATS.Persistence.Interface.IEmployeesDao, ATS.Persistence" implementation="ATS.Persistence.MapperDao.EmployeesSqlMapDao, ATS.Persistence"/>
</daoFactory>
</context>
</daoConfig>
主要是<daoFactory>节点的设置,dao运行时的接口对应的实现类,即:IEmployeesDao 由EmployeesSqlMapDao实现
主要参考:http://hi.baidu.com/tlq_1983/blog/item/28b4aef5edfd9920bc3109c1.html
相关文章推荐
- springmvc学习笔记(1)-框架原理和入门配置
- Keras深度学习框架学习笔记系列(2)- Keras的安装与配置
- [学习笔记]在struts2.0框架中,多struts.xml与多applicationContext.xml配置的方法
- 【Puppet in action】 学习笔记之Puppet目录结构及配置文件说明
- OpenMAX/IL: OMX IL 学习笔记【1】- 结构框架
- php学习笔记1 apache服务器使用及配置① 启动和停止 端口配置 apache的目录结构
- Tomcat配置-学习笔记1---核心配合文件server.xml整体结构
- mybatis学习笔记(六)使用generator生成mybatis基础配置代码和目录结构
- Fiori2.0学习笔记-核心技术框架&基本项目结构
- Java框架spring 学习笔记(十八):事务管理(xml配置文件管理)
- mybatis学习笔记(六)使用generator生成mybatis基础配置代码和目录结构
- 学习SSM框架笔记五:利用五大组件采取配置文件和SpringMVC模式写HelloWorld
- 6.笔记JAVA框架学习——Bean配置Properties属性
- SpringMVC学习笔记(2) 框架配置+HelloWorld(注解版)
- HTML学习笔记【8】使用框架结构
- Spring.Net框架介绍及基本配置(学习笔记一)
- Yii 框架学习笔记(配置文件)
- JavaWeb学习笔记之SSM框架搭建配置文件
- SpringSecurity学习笔记之二:SpringSecurity结构及基本配置
- # springmvc学习笔记(1)-框架原理和入门配置