快速业务通道

Spring注入 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20
rDao;        }        public void setStudentService(StudentService stuService){            this.studentService=stuService;        }        public void setMaxStudents(int maxStudents){            this.maxStudents=maxStudents;        }        public int getMaxStudents(){            return maxStudents;        }        public Course getCourse(String id){           return courseDao.findById(id);         }        public void createCourse(Course course){            courseDao.create(course);         }        public void enrollStudentInCourse(Course course,Student stu) throws              CourseException{            if(course.getStudent().size()>=maxStudents){              throws new CourseException("Course is full");           }            enforcePrerequisites(course,student);            course.getStudent().add(student);            courseDao.update(course);         }        private void enforcePrerequisites(Course course,Student student) throws CourseException{            Set completed=               studentService.getCompletedCourse(student);            Set prereqs=course.getPrerequisites();           for(Iternate iter=prereqs.iterator(); iter.hashNext();){              if(!completed.contains(iter.next())){               throws new CourseException("Prerequisites are not met.")              }            }       }      }

和StudentServiceImpl一样,CoureseServiceImpl是通过它的构造函数接受CourseDao参数。CourseDao的实现是CourseDaoImpl。

enrollStudentInCourse()方法在把学生添加到课程中之前先要调用enforcePrerequisites()方法。如果学生不能满足先决条件,enforcePrerequisites()方法抛出CourseException,enrollStudentInCourse将重新抛出这个异常。

注意enforcePrerequisites()方法使用了StudentService实现类来获得一个学生的所有已完成课程。这意味着除了CourseDao,CoureseServiceImpl还要与StudentService合作一满足先决条件这个业务需求。CoureseServiceImpl通过setStudentService()方法得到它的

StudentService,不象courseDao是通过构造函数得到。这样做的原因是因为courseDao在CoureseServiceImpl中经常被用到,所以不应该在创建CoureseServiceImpl的时候还没有设置CourseDao属性。

Spring注入(3)

时间:2011-01-27

使用XML装配:

在Spring中,有几种容器都支持使用XML装配BEAN,包括:

XMLBeanFactory:一种简单的BeanFactory,它用java.io.InputStream载入上下文定义文件。

ClassPathXmlApplicationContext:一种应用上下文,它从类路径中载入上下文定义文件。

FileSystemXmlApplicationContext:一种应用上下文,它从文件系统中载入上下文定义文件。

XmlWebApplicationContext:一种基于Spring的Web应用系统上下文,它从Web应用系统上下文中载入上下文定义文件。

所有这些面向XML的容器都使用非常简单的XML文件来定义BEAN。上下文定义文件的根元素是<beans></beans>.<beans>有多个<bea

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号