Liferay开发学习Part6:Service Builder
2019独角兽企业重金招聘Python工程师标准>>>
一.什么是Service Builder?
Service Builder是liferay IDE提供的一种代码生成方案,开发人员只需编辑一个数据库实体的描述文件(XML),即可根据XML文件生成Spring层代码、Hibernate层代码、SQL、SQL索引创建文件、Spring和Hibernate的配置文件等,可以提高开发效率
二.使用Service Builder
1.service.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 6.0.0//EN"
"http://www.liferay.com/dtd/liferay-service-builder_6_0_0.dtd">
<service-builder package-path="com.sample.portlet.liferay"><author>laiwanshan</author><namespace>Liferay</namespace><entity name="Book" local-service="true" remote-service="true"><!-- PK fields --><column name="bookId" type="long" primary="true"/><!-- Group instance --><column name="groupId" type="long"/><!-- Audit fields --><column name="companyId" type="long"/><column name="userId" type="long"/><column name="userName" type="String"/><column name="createDate" type="Date"/><column name="modifiedDate" type="Date"/><!-- Other fields --><column name="title" type="String"/></entity>
</service-builder>
配置说明:
<service-builder package-path="com.sample.portlet.liferay">
依据这个配置生成目录 WEB-INF/src/com/sample/portlet/library/
<namespace>Liferay</namespace>
Table的前缀,表名为namespace_tablename
<entity name="Book" local-service="true" remote-service="true">
name即为表名;
local-service默认为false,设为true将自动生成本地接口;
remote-service默认为false,设为true将自动生成远程接口。
<column name="title" type="String"/>
column配置表中的字段
2.生成Service
点击按钮即自动生成相应的目录及文件
注意:生成了一大堆类,但,我们只需要关注这4个类
1)BookLocalServiceImpl:这个类中写我们自己的业务逻辑,添加新的方法
2)BookLocalServiceUtile:通过该类调用方法
3)BookServiceImpl:安全检测代码
4)BookImpl:添加方法
3.实现自己的方法
BookLocalServiceImpl类中添加新方法
public class BookLocalServiceImpl extends BookLocalServiceBaseImpl {public Book addBook(long userId,String title) throws PortalException,SystemException {User user = UserUtil.findByPrimaryKey(userId);Date now = new Date();long bookId = CounterLocalServiceUtil.increment(Book.class.getName());Book book = bookPersistence.create(bookId);book.setTitle(title);book.setCompanyId(user.getCompanyId());book.setUserId(user.getUserId());book.setCreateDate(now);book.setModifiedDate(now);return bookPersistence.update(book, false);}}
4.重新生成Servcie,步骤同2
5.调用自己的方法
ThemeDisplay themeDisplay =(ThemeDisplay)actionRequest.getAttribute("THEME_DISPLAY");
User u = themeDisplay.getUser();//取得当前用户
Book b = BookLocalServiceUtil.addBook(u.getUserId(), title);
转载于:https://my.oschina.net/laiwanshan/blog/104942
Liferay开发学习Part6:Service Builder相关推荐
- Liferay开发学习(1)
Liferay 6.1开发学习(一):环境搭建 一.资源准备 以下资源内容可以在Liferay的官方网站下载,1-3在http://www.liferay.com/downloads/liferay- ...
- .net开发安卓入门 - Service (服务)
.net开发安卓入门 - Service Android Service 概述 Service VS Thread (服务和线程之间进行选择) 前台服务 代码 启动前台服务方法 运行效果 后台服务 代 ...
- 初级java开发学习路线_成为初级全栈Web开发人员的10分钟路线图
初级java开发学习路线 So you have started your journey into the world of web development. But what do you lea ...
- vue - blog开发学习5
vue - blog开发学习5 基本功能和后台联调 1.首页的所有博客 因为是前后台都是本地开发,所以前端vue需要设置proxy:修改/config/index.js中的这个proxyTable p ...
- Liferay Portal学习笔记-coldTear
[原创]Liferay Portal学习笔记(一):安装 一. 简单安装 1)下载并安装 JDK1.5 1. 下载并安装 Windows Platform J2SE(TM) Development ...
- liferay 点击build service 出现Cloud not reserve enough space for object heap
Cloud not reserve enough space for object heap 2013年10月28日 Liferay 评论 4 条 阅读 1,978 views 次 在Liferay中 ...
- Redis运维和开发学习笔记(3)redis搭建集群
Redis运维和开发学习笔记(3)redis搭建集群 文章目录 Redis运维和开发学习笔记(3)redis搭建集群 Redis集群搭建 Redis集群搭建 cp /etc/redis.d/redis ...
- Spring注解驱动开发学习总结8:自动装配注解@Autowire、@Resource、@Inject
Spring注解驱动开发学习总结8:自动装配注解@Autowire.@Resource.@Inject 1.自动装配@Autowire.@Resource.@Inject 1.1 构建bookDao ...
- QT开发学习-第一章-QT简介
QT简介 一.QT简介 1.QT简介 2.QT优点 二.QT开发工具 1.Qt Creator 2.Qt Designer 3.Qt Linguist 4.Qt Assistant 5.Qmake 6 ...
最新文章
- 负载均衡续:万亿流量场景下的负载均衡实践
- 理解smart pointer之三:unique_ptr
- 用python画漂亮图片-python结合G2绘制精美图形
- 阿里云DDoS基础防护详解防护阈值黑洞时间详细说明
- 基于机器学习的捡球机器人设计与实现(探索)第5篇——训练并使用Haar分类器(2019-03-02)
- 学习设计模式 - 六大基本原则之接口隔离原则
- 【简便解法】1035 插入与归并 (25分)_37行代码AC
- java面向对象:关键字 —(16)
- 张高兴的 Windows 10 IoT 开发笔记:部署 ASP.NET Core 2 应用
- 超好用的自动化测试工具——Python脚本
- matlab画收敛曲线,3.26 面收敛处理
- PHP实现货币换算的方法
- 计算机屏保后无法进入登录界面,Win10锁屏界面无法登录卡在登录状态的应对办法...
- window 使用 Edge/Chrome 调试手机 iOS 的 Safari 浏览器
- 华为服务器BMC方式安装系统-官方文档解读
- java实现高德地图app,Android 高德地图入门demo,最新高德地图实现方法,附源码及apk...
- VirtualBox Host-Only Ethernet Adapter 误删问题
- storyboard搭建项目_轻松搞定一人一个storyboard开发
- Android 应用开发中国大学生挑战赛
- 基于java的OA办公管理系统设计(含源文件)
热门文章
- java se入门_java SE 入门之运算符(第三篇)
- 微服务 注册中心_4.微服务架构的第二个组件:注册中心
- excel中如何对矩阵得对角线进行求和_如何利用图卷积网络进行图形深度学习(第2部分)...
- verilog时钟翻转怎么写_verilog实时可调时钟代码
- 江陵中学2021高考成绩查询,2021高考序幕拉开 荆州38080名考生赴考
- python我的世界给予物品指令_我的世界指令给予物品 我的世界指令给予物品是多少...
- mysql sqlstate 08001_关于Toad连接DB2的sqlstate=08001错误
- dorado 7 怎么样_一点点奶茶怎么样?消费者眼中的网红奶茶
- Linux下构建自己的C++共享库并配合pkg-config生成链接选项
- 对比损失的PyTorch实现详解