J2EE实践第四部分-使用SAP CAF实现功能的简单小例子

2024-02-01 23:08

本文主要是介绍J2EE实践第四部分-使用SAP CAF实现功能的简单小例子,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近工作比较忙,所以没有更新博客。上一篇介绍了一个简单但是完整的 EJB Web应用,今天使用 SAP CAF来实现上一个例子的功能, SAP CAF就是 Composite Application Framework。它的目的用于在当今企业复杂的应用系统架构之上构建统一用户体验的应用程序,基于 ESOA是它的基本特征。我们先看看使用 CAF最简单的程序怎么实现。

开发环境:
SAP NetWeaver 7.0 SR3
NWDS 7.0.11
JDK 1.4

主要涉及的技术: SAP CAF

1.       NWDS里面创建 Composite application project
项目名称就叫 Employee


创建好了以后在 Service Explorer可以看到如下的结构:


主要有三种 Service,分别是 Application Service, Entity Service, External Service。外部的 RFC Web Service可以导入到 External Service中, Entity Service是根据业务需求新创建的 Service,而 Application Service则可以在 Entity Service External Service之上根据业务需求来进一步实现复杂的业务逻辑。这个例子只用到了 Entity Service

2.       创建 Entity Service,定义对象的属性

首先创建一个 Employee Entity


然后为它增加属性,也就是一些数据字段


我们为它增加了 4个属性,分别是:

属性名称: id 类型 : long

属性名称: firstName 类型 : shortText

属性名称: lastName 类型 : shortText

属性名称: email 类型 : longText


3.       定义 Web Service operation

首先增加一个 getByLastName operation,在创建界面中选择 lastName这个字段


然后增加一个 getAll operation,不用选择任何字段


最后检查一下其它属性,将默认的权限检查去掉:


可以看到默认它是通过 caf提供的数据库来进行数据持久化的:

4.         自动生成代码,部署程序

选择项目,右键选生成代码。

然后右键选 Development Component-> build

最后部署到服务器。

部署成功后可以看到成功信息:


5.       使用 CAF UI pattern来配置 UI界面

我们会先建一个 Object Editor Object  Lsit,然后是一个 Object Selector

首先登录 caf主页 : http://j2ee_host:j2ee_port/caf


选择 User Interface Configuration -> Configuration Browser


选择 Object Editor->New Configuration,名字叫 createEmp

Service选择 sap.com/employee/EmployeeService

Object选择 Employee

然后选择 Retrieve metadata


然后选择需要编辑的属性,这里我们选择 id, firstName, lastName, email

然后给 button的按钮文本上填入 submit,如下所示:


预览:


可以做个简单的测试,输入信息:

可以看到数据被成功保存:


Ok,在配置界面选择 save+return。保存退出。

然后我们开始配置一个 Object List:


最后创建一个 Object Selector:


List的配置用到了刚刚配的 empList,这是 search_emp的配置 :


最后 save + return ,完工。

6.       测试我们的 Selector功能


输入 *,选择 Go,在下面的 list输出了所有 employee


选择 New按钮,则弹出新界面来创建 Employee:


7.       结论

大家可以看到我们通过简单的几步步骤,就完成了使用 CAF Service的创建,以及使用界面的自动生成。 CAF的功能确实非常强大,这样一个框架自动为开发者提供了从对象的建模到对象的持久化以及 UI等完整的功能,可以让开发者专心于业务逻辑的开发中,极大地提高了开发效率。

PS..在csdn上创建这样图文并茂的文章太累了。。。插入图片功能太不好用。。。

这篇关于J2EE实践第四部分-使用SAP CAF实现功能的简单小例子的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/668766

相关文章

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

Python yield与yield from的简单使用方式

《Pythonyield与yieldfrom的简单使用方式》生成器通过yield定义,可在处理I/O时暂停执行并返回部分结果,待其他任务完成后继续,yieldfrom用于将一个生成器的值传递给另一... 目录python yield与yield from的使用代码结构总结Python yield与yield

Go语言使用select监听多个channel的示例详解

《Go语言使用select监听多个channel的示例详解》本文将聚焦Go并发中的一个强力工具,select,这篇文章将通过实际案例学习如何优雅地监听多个Channel,实现多任务处理、超时控制和非阻... 目录一、前言:为什么要使用select二、实战目标三、案例代码:监听两个任务结果和超时四、运行示例五

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

分布式锁在Spring Boot应用中的实现过程

《分布式锁在SpringBoot应用中的实现过程》文章介绍在SpringBoot中通过自定义Lock注解、LockAspect切面和RedisLockUtils工具类实现分布式锁,确保多实例并发操作... 目录Lock注解LockASPect切面RedisLockUtils工具类总结在现代微服务架构中,分布

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

破茧 JDBC:MyBatis 在 Spring Boot 中的轻量实践指南

《破茧JDBC:MyBatis在SpringBoot中的轻量实践指南》MyBatis是持久层框架,简化JDBC开发,通过接口+XML/注解实现数据访问,动态代理生成实现类,支持增删改查及参数... 目录一、什么是 MyBATis二、 MyBatis 入门2.1、创建项目2.2、配置数据库连接字符串2.3、入

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security