版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、接口实现及配置在本示例中,接口实现代码 90%都是使用代码生成工具生成的,只有针对那些在接口中添加新的方法的接口实现,才需要写代码,另外一些需要作特殊业务逻辑判断的代码,也需要在生成后添加上去。下面是IBlogService 的实现代码:package com.easyjf.simplog.service.impl;import import importimportjava.util.List; com.easyjf.simp com.easyjf.simpcom.easyjf.simplog.log.IBlog;.Blog;log.service.IBlogService;publiccl
2、ass BlogServiceImpl implements IBlogService private IBlogblog;publicadminLogin(String name, String password) Blog blog = getBlog();if (name.equals(blog.getAuthor()& password.equals(blog.getPassword()return true; return false;public Blog getBlog() Blog blog = List list =if (list =null;blog.find( 1=1
3、,null | list.size() nullnull, -1,1) -1);blog = new Blog(); blog.setTitle(简单Blog); blog.setAuthor(admin); blog.setPassword(admin); blog.save(blog); elseblog = (Blog) list.get(0);return blog;public void setBlog(IBlogblog) this.blog= blog;publicupdateBlog(Blog blog) blog.update(blog);return true;在BlogS
4、erviceImpl 中,直接通过 IBlog来数据对象。在 getBlog 方法中首先通过blog的find 方法从持久层查找一个Blog 对象,如果没有找到,则表示系统还没有初始化Blog,这里需要创建一个Blog 实例,并把他持久化起来。下面的代码实际上是实现往数据库中添加一个Blog 信息:blog = new Blog(); blog.setTitle(简单Blog); blog.setAuthor(admin);blog.setPassword(admin);blog.save(blog);由于这是一个单用户的Blog,因此同一个Blog 实例。任何时候只要通过调用getBlog
5、方法,都会得到adminLogin 方法中通过把传入的用户名及参数与系统中Blog 对象的author 及password 对照,如果两者相等则返回true 表示用户登录验证通过,否则返回false 表示管理员登录验证失败。updateBlog 只是简单的调用blog的update 方法把传入的blog 参数持久化起来而已。为了在系统中使用IBlogService 这个业务组件需要在容器中进行配置,如下所示 :property name=blog ref=blog/下面再看一个ICommetService 接口的实现代码,CommentServiceImpl 中的内容如下所示:package
6、com.easyjf.simplog.service.impl;importimportjava.io.Serializable;java.util.List;import import import import import import importimportcom.easyjf.core.support.query.IQueryObject; com.easyjf.core.support.query.QueryUtil;com.easyjf.web.tools.IPageList;com.easyjf.simp com.easyjf.sim com.easyjf.simp com.
7、easyjf.simplcom.easyjf.slment; ment;ment;mentService;lment;/* CommentServiceImplauthor EasyJWeb 1.0-m2$Id: CommentServiceImpl.java,v 0.0.1 2008-1-15 9:40:18 EasyJWeb 1.0-m2 Exp $*/public class CommentServiceImpl implements ICommentServiceprivate ICommentcomment;public voidment(ICommentcomment)ment;p
8、ublic Longment(Comment comment) .save(comment);mentif (comment != null & comment.getId() != null) return comment.getId();return null;public Comment Comment comment return comment;ment(Long id)ment=.get(id);publicment(Long id) Comment comment =if (comment != null) ment(id);mentreturn true;.remove(id)
9、;return false;publicments(ListcommentIds)for (Serializable id: commentIds) ment(Long) id);return true;public IPageListmentBy(IQueryObject queryObject) return QueryUtil.query(queryObject,Commment);publicif (id != null) ment(Long id, Comment comment) comment.setId(id); else return false;mentreturn tru
10、e;.update(comment);public IPageListmentBy(IQueryObjectqueryObject)return QueryUtil.query(queryObject,mment);public IPageListmentBy(IQueryObjectqueryObject)return QueryUtil.query(queryObject,mment);CommentServiceImpl 中除了最后的mentBy 及mentBy 两个方接口中的相关方法实现以外,其它的实现代码都是通过工具生成的。直接调用 commentmentBy 用来查询系统中法来实现
11、对评论的添加、修改、删除、查询等操作。评论,该方法直接调用QueryUtil.query 方法,在第二个中使用参数为ment.class 表示要查询类型为ment 的实体,mentBy 方法中的代码与mentBy 类似。IQueryObject 是一个查询封装对象,包含了分页、排序、查询条件等信息,可以定制各种各性化的查询,具体可以参考EasyJWeb 的文档,当然也可以根据自己的喜爱书写自已的业务逻辑层实现代码。下面再列出UserSeriveImpl 中在生成的实现基础上修改过的代码,一个是 login方法的实现,另外一个是 delUser 方法。内容如下:public claprivate
12、serServiceImpl implements IUserService IUseruser;publicdelUser(Long id) User user = getUser(id);ments().size()0)throwthrowLongeiwcException(用户已if(经了评论,不能直接删除!);if (user != null) user.remove(id);return true;return false;public User login(String userName, String password) User user = user.getBy(name,
13、userName);if (user != null)if (password.equals(user.getPassword()user.setLastLogime(newneDwate();user.setLogimes(user.getLogimes()+1);this.updateUser(user.getId(),user);return user;return null;在删除用户的时候,首先看该用户是否已经了评论,如果了评论则不能直接删除,此时直接抛出一个逻辑错误给调用者,下面的代码实现该功能:if(ments().size()0)throwthrowLongeiwcExcept
14、ion(用户已经发表了评论,不能直接删除!);UserServiceImpl 中用户登录验证的代码实现也非常简单,首先根据userName 参数从持久层查找到该用户名对应的User 对象,如果找到则表示用户名正确,进一步判断是否正确,如果正确则表示验证通过,重新设置用户上一次登录时间,并把用户的登录次数加 1,调用 updateUser 保存修改后的用户信息(在 EJS 构架中可以不用调用 updateUser 方法),然后返回这个用户。如果用户登录验证失败,则直接返回null。所有的业务组件都需要在容器中进行配置,注入相应的属性,才能正常工作。本系统中的涉及到的所有业务组件的配置文件,都是使
15、用代码生成工具自动生成,位于service.xml 文件中,内容如下:bean id=albumServiceclass=com.easyjf.simpproperty name=albumlog.service.impl.AlbumServiceImpl ref=album/property name=albumCategoryclass=com.easyjf.simplog.service.impl.BlogServiceImplproperty name=blogref=blog/property name=commentproperty name=link ref=linkclass=com.easyjf.simpprope
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新闻媒体工作者签证办理指南
- 电影院电梯井道安装及维护合同
- 商务旅游合同管理办法
- 终止广告合作意向书
- 员工团建活动激励管理办法
- 医院施工协议
- 保险业务清运施工合同
- 图书出发行费收据
- 医院培训师招聘合同
- 临时客服人员聘用协议
- GB/T 34484.2-2018热处理钢第2部分:淬火及回火合金钢
- GB/T 24934-2010全地形车型号编制方法
- 【课件】2.1 使市场在资源配置中起决定性作用 课件高中政治统编版必修二经济与社会
- GB/T 10476-2004尿素高压冷凝器技术条件
- GA/T 947.4-2015单警执法视音频记录系统第4部分:数据接口
- 污染土壤的修复课件
- 《外科学》阑尾疾病-课件
- 气动三通阀门使用说明书及维修手册
- 狐狸和公山羊课件
- 北京旅行4天3夜课件
- DB3311T 56-2016 森林消防蓄水池建设技术规程
评论
0/150
提交评论