热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ASP.NET&Spring.NET&NHibernate最佳实践(五)——第3章人事子系统(2)

3.4.人事子系统服务层(Service)部门服务接口(IDeptService.cs)usingSystem;usingGuushuuse.SalaryPrj.
3.4. 人事子系统服务层(Service)
部门服务接口(IDeptService.cs)
using  System;
using  Guushuuse.SalaryPrj.HR.DomainModel;
using  Guushuuse.SalaryPrj.HR.Dao;
using  System.Collections;

namespace  Guushuuse.SalaryPrj.HR.Service
{
    
/**//// 
    
/// 部门服务接口
    
/// 

    public interface IDeptService
    
{
        
void CreateDept(Dept dept);
        
void DeleteDept(Dept dept);
        IDeptDao DeptDao 
getset; }
        IList GetAllDepts();
        Dept GetDept(
int deptID);
        
void UpdateDept(Dept dept);
    }

}


部门服务类(DeptService.cs)
using  System;
using  System.Collections.Generic;
using  System.Text;
using  Guushuuse.SalaryPrj.HR.Dao;
using  Guushuuse.SalaryPrj.HR.DomainModel;
using  System.Collections;
using  Spring.Transaction.Interceptor;

namespace  Guushuuse.SalaryPrj.HR.Service
{
    
/**//// 
    
/// 部门服务类
    
/// 

    public class DeptService : IDeptService
    
{        
        
private IDeptDao _deptDao;

        
public IDeptDao DeptDao
        
{
            
get return _deptDao; }
            
set { _deptDao = value; }
        }


        
public DeptService()
        
{

        }


        [Transaction(ReadOnly 
= false)]
        
public void CreateDept(Dept dept)
        
{
            _deptDao.CreateDept(dept);
        }


        [Transaction(ReadOnly 
= false)]
        
public void UpdateDept(Dept dept)
        
{
            _deptDao.UpdateDept(dept);
        }


        [Transaction(ReadOnly 
= false)]
        
public void DeleteDept(Dept dept)
        
{
            _deptDao.DeleteDept(dept);
        }


        
public IList GetAllDepts()
        
{
            
return _deptDao.GetAllDepts();
        }


        
public Dept GetDept(int deptID)
        
{
            
return _deptDao.GetDept(deptID);
        }

    }

}


员工服务接口(IEmployeeService.cs)
using  System;
using  Guushuuse.SalaryPrj.HR.DomainModel;
using  Guushuuse.SalaryPrj.HR.Dao;
using  System.Collections;

namespace  Guushuuse.SalaryPrj.HR.Service
{
    
/**//// 
    
/// 员工服务接口
    
/// 

    public interface IEmployeeService
    
{
        
void CreateEmployee(Employee employee);
        
void DeleteEmployee(Employee employee);
        IEmployeeDao EmployeeDao 
getset; }
        IList GetAllEmployees();
        Employee GetEmployee(
int employeeID);
        
void UpdateEmployee(Employee employee);
    }

}


员工服务类(EmployeeService.cs)
using  System;
using  System.Collections.Generic;
using  System.Text;
using  Guushuuse.SalaryPrj.HR.Dao;
using  Guushuuse.SalaryPrj.HR.DomainModel;
using  System.Collections;
using  Spring.Transaction.Interceptor;

namespace  Guushuuse.SalaryPrj.HR.Service
{
    
/**//// 
    
/// 员工服务类
    
/// 

    public class EmployeeService : IEmployeeService
    
{        
        
private IEmployeeDao _employeeDao;

        
public IEmployeeDao EmployeeDao
        
{
            
get return _employeeDao; }
            
set { _employeeDao = value; }
        }


        
public EmployeeService()
        
{

        }


        [Transaction(ReadOnly 
= false)]
        
public void CreateEmployee(Employee employee)
        
{
            _employeeDao.CreateEmployee(employee);
        }


        [Transaction(ReadOnly 
= false)]
        
public void UpdateEmployee(Employee employee)
        
{
            _employeeDao.UpdateEmployee(employee);
        }


        [Transaction(ReadOnly 
= false)]
        
public void DeleteEmployee(Employee employee)
        
{
            _employeeDao.DeleteEmployee(employee);
        }


        
public IList GetAllEmployees()
        
{
            
return _employeeDao.GetAllEmployees();
        }


        
public Employee GetEmployee(int employeeID)
        
{
            
return _employeeDao.GetEmployee(employeeID);
        }

    }

}


服务定位类(ServiceLocator.cs)
using  System;
using  System.Collections.Generic;
using  System.Text;
using  Spring.Context;
using  Spring.Context.Support;

namespace  Guushuuse.SalaryPrj.HR.Service
{
    
/**//// 
    
/// 服务定位类
    
/// 

    public class ServiceLocator
    
{
        
private static IApplicationContext _ctx;

        
static ServiceLocator()
        
{
            _ctx 
= ContextRegistry.GetContext();
        }


        
public static IDeptService DeptService
        
{
            
get
            
{
                IDeptService deptService 
= _ctx["deptService"as IDeptService;

                
return deptService;
            }

        }


        
public static IEmployeeService EmployeeService
        
{
            
get
            
{
                IEmployeeService employeeService 
= _ctx["employeeService"as IEmployeeService;

                
return employeeService;
            }

        }

    }

}


修改Config/Guushuuse.SalaryPrj.HR.config文件,新增object
< object  id ="deptService"  type ="Guushuuse.SalaryPrj.HR.Service.DeptService, Guushuuse.SalaryPrj.HR" >
    
< property  name ="DeptDao"  ref ="deptDao"   />
  
object >

  
< object  id ="employeeService"  type ="Guushuuse.SalaryPrj.HR.Service.EmployeeService, Guushuuse.SalaryPrj.HR" >
    
< property  name ="EmployeeDao"  ref ="employeeDao"   />
  
object >

推荐阅读
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 本文详细介绍了 Java 中 org.w3c.dom.Node 类的 isEqualNode() 方法的功能、参数及返回值,并通过多个实际代码示例来展示其具体应用。此方法用于检测两个节点是否相等,而不仅仅是判断它们是否为同一个对象。 ... [详细]
  • 本文介绍了一个使用Spring框架和Quartz调度器实现每周定时调用Web服务获取数据的小项目。通过详细配置Spring XML文件,展示了如何设置定时任务以及解决可能遇到的自动注入问题。 ... [详细]
  • 本文探讨了在使用JavaMail发送电子邮件时,抄送功能未能正常工作的问题,并提供了详细的代码示例和解决方法。 ... [详细]
  • JUC并发编程——线程的基本方法使用
    目录一、线程名称设置和获取二、线程的sleep()三、线程的interrupt四、join()五、yield()六、wait(),notify(),notifyAll( ... [详细]
  • 树莓派4B:安装基础操作系统指南
    本文将详细介绍如何为树莓派4B安装基础操作系统,包括所需材料、镜像下载、镜像烧录以及更换国内源等步骤。 ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • spring boot使用jetty无法启动 ... [详细]
  • 如何在PHP中安装Xdebug扩展
    本文介绍了如何从PECL下载并编译安装Xdebug扩展,以及如何配置PHP和PHPStorm以启用调试功能。 ... [详细]
  • 在将 Android Studio 从 3.0 升级到 3.1 版本后,遇到项目无法正常编译的问题,具体错误信息为:org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processDemoProductDebugResources'。 ... [详细]
  • SQL Server 存储过程实践任务(第二部分)
    本文档详细介绍了三个SQL Server存储过程的创建与使用方法,包括统计特定类型客房的入住人数、根据房间号查询客房详情以及删除特定类型的客房记录。 ... [详细]
  • 在尝试启动Java应用服务器Tomcat时,遇到了org.apache.catalina.LifecycleException异常。本文详细记录了异常的具体表现形式,并提供了有效的解决方案。 ... [详细]
  • Spring Boot使用AJAX从数据库读取数据异步刷新前端表格
      近期项目需要是实现一个通过筛选选取所需数据刷新表格的功能,因为表格只占页面的一小部分,不希望整个也页面都随之刷新,所以首先想到了使用AJAX来实现。  以下介绍解决方法(请忽视 ... [详细]
  • 本文探讨了如何在游戏启动画面中移除广告,特别是在游戏数据加载期间(大约5-6秒)广告会短暂显示的问题。通过调整XML布局和代码逻辑,可以实现广告的延迟加载或完全移除。 ... [详细]
author-avatar
玩在青岩堡欢乐长桌宴_840
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有