首页 > 代码库 > SSH.net之Service层
SSH.net之Service层
一、新建一个项目,命名为:Service
二、添加接口及其实现
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Model;namespace Service{ public interface IUserService { object Save(Users entity); }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Model;namespace Service{ public class UserService:IUserService { public object Save(Users entity) { throw new NotImplementedException(); } }}
由于用到Model层中Users对象,所以要引入一下项目Model,然后
1 using Model;
二、配置文件
<?xml version="1.0" encoding="utf-8" ?><objects xmlns="http://www.springframework.net"> <object id="transactionManager" type="Spring.Data.NHibernate.HibernateTransactionManager, Spring.Data.NHibernate21"> <property name="DbProvider" ref="DbProvider"/> <!--HibernateTransactionManager通过注入sessionfactory. 然后在得到session,把session包装成SessionHolder(),并通过threadlocal来对象的实现和线程的绑定(threadlocal实现重点) 最后到线程中的session取得的Transaction--> <property name="SessionFactory" ref="NHibernateSessionFactory"/> </object> <!-- 事务拦截器,激活事务管理器所必须的 --> <!-- Spring.net使用TransactionInterceptor声明式事物配置--> <object id="transactionInterceptor" type="Spring.Transaction.Interceptor.TransactionInterceptor, Spring.Data"> <property name="TransactionManager" ref="transactionManager"/> <property name="TransactionAttributeSource"> <object type="Spring.Transaction.Interceptor.AttributesTransactionAttributeSource, Spring.Data"/> </property> </object> <!--设置TransactionProxyFactoryObject事物代理,添加需要拦截的方法--> <!--如果你不喜欢使用特性来标注事务([Transaction]),Spring.NET为NHibernate提供的事务代理是 TransactionProxyFactoryObject。--> <object id="BaseTransactionManager" type="Spring.Transaction.Interceptor.TransactionProxyFactoryObject, Spring.Data" abstract="true"> <!--spring获取hibernate的事物管理--> <property name="PlatformTransactionManager" ref="transactionManager"/> <property name="TransactionAttributes"> <name-values> <add key="Save*" value="PROPAGATION_REQUIRED"/> <!--key属性为Save*,意思是拦截所有以Save开头的方法--> <add key="Set*" value="PROPAGATION_REQUIRED"/> <add key="Finish*" value="PROPAGATION_REQUIRED"/> <add key="Update*" value="PROPAGATION_REQUIRED"/> <add key="Delete*" value="PROPAGATION_REQUIRED"/> <add key="Add*" value="PROPAGATION_REQUIRED"/> <add key="Get*" value="PROPAGATION_SUPPORTS,readOnly"/> <add key="Find*" value="PROPAGATION_SUPPORTS,readOnly"/> <add key="Load*" value="PROPAGATION_SUPPORTS,readOnly"/> <add key="*" value="PROPAGATION_REQUIRED"/> </name-values> </property> </object> <!--为rolesService.cs类添加TransactionProxyFactoryObject事物代理--> <object id="rolesService" parent="BaseTransactionManager"> <!--将 TransactionProxyFactoryObject的 Target属性注入业务处理层的类,这样Spring.NET会为该类包装上事务--> <property name="Target"> <object type="Serivce.rolesService,Manager"> <property name="RolesDAO" ref="dao.roles"/> </object> </property> </object> <object id="UsersManager" parent="BaseTransactionManager"> <property name="Target"> <object type="Manager.UsersManager,Manager"> <property name="UsersDAO" ref="dao.users"/> </object> </property> </object> <object id="PermissionManager" parent="BaseTransactionManager"> <property name="Target"> <object type="Manager.PermissionManager,Manager"> <property name="PermissionDAO" ref="dao.permission"/> </object> </property> </object></objects>
最后,设置配置文件属性:
SSH.net之Service层
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。