「Java开发指南」如何利用MyEclipse启用Spring DSL?(二)

news2025/1/11 17:15:02

本教程将引导您通过启用Spring DSL和使用Service Spring DSL抽象来引导Spring和Spring代码生成项目,本教程中学习的技能也可以很容易地应用于其他抽象。在本教程中,您将学习如何:

  • 为Spring DSL初始化一个项目
  • 创建一个模型包
  • 创建一个服务和操作
  • 实现一个服务方法
  • 启用JAX-WS和DWR

注意:自定义Spring代码生成需要MyEclipse Spring或Bling授权。

在上文中(点击这里回顾>>),我们为大家介绍了如何初始化项目、检查输出等,本文将继续介绍如何创建一个Model包、创建服务和操作等。持续关注我们,获取更多MyEclipse中文教程哦~

MyEclipse v2023.1.2离线版下载(Q技术交流:742336981)

三、创建一个模型包

模型包用于名称间隔和对相关的Spring DSL组件进行分组,模型包直接与Java包相关,并且在模型包中创建的Spring DSL构件被生成为匹配的Java包。在创建服务之前,您需要创建一个模型包。

1. 右键单击Spring DSL文件夹,然后选择New>Model Package。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

添加模型包

2. 输入org.acme.services作为新模型包的名称,然后单击Finish,新的模型包被添加到Spring DSL视图中。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

新模型包

四、创建一个服务和操作

服务用于定义服务层组件和管理相关文件,服务被生成到多个Java文件中,主要的Java文件是一个带@Service注释的Spring组件,这是服务层组件的专用构造型。操作是为服务定义方法的Spring DSL构件,它们是Java方法的Spring DSL表示。操作使用输入和输出来交换数据,它们直接作为方法生成到各自的类中。

1. 右键单击org.acme.service模型包,然后选择New>Service。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

添加服务

2. 输入MyService作为新服务的名称,然后单击Finish,新的Service被添加到Spring DSL视图中。

3. 双击Service来在编辑器中打开。

Service编辑器用于配置Spring DSL服务的特定实例,在编辑器的底部有各种选项卡,用于配置服务的不同方面。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

服务编辑器

4. 右键单击MyService,然后选择New>Operation。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

向服务添加操作

5. 输入doSomething作为新操作的名称,然后单击Finish。新的Operation被添加到Spring DSL视图中,Operation编辑器将自动打开来配置该操作,Operation编辑器提供特定于操作的配置选项。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

操作编辑器

五、审查生成的代码

如果单击Spring DSL视图中的服务,则生成视图将显示为您生成的文件。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

生成视图

默认情况下,Spring DSL服务生成一个服务接口、一个服务实现类(用Spring @Service注释)和一个JUnit测试类。从Spring DSL工件生成的所有Java工件都在generated视图中列出,双击生成视图中的Java工件,在编辑器中打开Java文件。

注意:生成视图是MyEclipse中支持Spring的视图,默认情况下包含在MyEclipse Spring透视图中。如果您正在使用不同的透视图,那么可能需要将生成视图添加到您的工作区中。

如前所述,每个服务(DSL)生成一个服务实现类、一个服务接口和一个服务JUnit测试类。

Spring框架支持@Service注释,它是服务层组件的专用构造型。服务实现类是用Java包名(基于模型包)、所有相关的Spring导入语句、所有相关的Spring注释(包括@Serviceannotation)和为服务创建的每个操作的Java方法生成的。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

MyServiceImpl.java – 服务实现类

注意,doSomething() Java方法没有实现,这就是实现所需功能的地方。MyEclipse已经创建了包含所有必需的Java和Spring配置的框架代码,但是实现代码是您的责任。您知道希望服务方法做什么,并且可以直接在Java代码中实现该方法。

下面是生成的服务接口,当您向服务添加新操作时,服务接口将自动更新,这样就少了一件需要担心的事。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

MyService.java – service 接口

下面是生成的JUnit测试类,它是用所有必需的JUnit和Spring样板代码生成的,您要做的唯一事情就是实现服务测试。当新的操作被添加到服务中时,新的测试方法被自动添加到测试类中。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

MyService.java – service JUnit类

注意:如果您查看为scaffolded应用程序生成的服务操作,会注意到它们已完全实现。另一方面,当使用Spring编辑器创建新的服务操作时,会生成Java方法,但不会生成Java方法体,这是scaffolding和Spring编辑器功能之间的根本区别。

六、实现服务方法

您已经准备好实现服务方法了,这里没什么特别的,只需编写生成的服务方法的实现代码。

打开MyServiceImpl.java文件,并向服务方法添加一些代码。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

服务方法代码

七、启用JAX-WS

默认情况下,服务不支持web服务调用,JAXWS Web Service选项卡用于配置服务的Web服务选项。

1. 通过双击Spring DSL视图中的MyService构件,打开MyService的Service编辑器。

2. 切换到JAXWS Web Service选项卡,选择MyService Web服务,然后选择Publish Web Service选项,这将服务公开为JAX-WS web服务。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

JAX-WS配置

3. 保存文件。

在部署应用程序时,该服务可作为JAX-WS SOAP web服务使用。如果单击Spring DSL视图中的服务,则生成视图将显示为您生成的另外两个与JAX-WS相关的文件。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

生成视图

八、启用DWR

默认情况下,服务不支持JavaScript/JSON调用,DWR选项卡用于配置服务的DWR选项。

1. 通过双击Spring DSL视图中的MyService构件,打开MyService的Service编辑器。

2. 切换到DWR选项卡,选择MyService,然后选择Publish选项,这将通过使用DWR的JavaScript/JSON公开服务。

「Java开发指南」MyEclipse如何支持Spring Scaffolding?

DWR配置

3. 保存文件。

该应用程序已配置为使此服务可用于JavaScript/JSON客户端(即AJAX应用程序)。

注意:由于依赖Java库的库版本不匹配导致DWR运行时问题,请参阅MyEclipse for Spring论坛,了解一个非常简单的解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1635874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【深度学习基础(1)】什么是深度学习,深度学习与机器学习的区别、深度学习基本原理,深度学习的进展和未来

文章目录 一. 深度学习概念二. 深度学习与机器学习的区别三. 理解深度学习的工作原理1. 每层的转换进行权重参数化2. 怎么衡量神经网络的质量3. 怎么减小损失值 四. 深度学习已取得的进展五. 人工智能的未来 - 不要太过焦虑跟不上 一. 深度学习概念 先放一张图来理解下人工智能…

不同路径 1 2

class Solution {public int uniquePaths(int m, int n) {int[][] dpnew int[m][n];//记录到每个格子有多少种路径for(int i0;i<m;i) dp[i][0]1;for(int j0;j<n;j) dp[0][j]1;//初始化for(int i1;i<m;i){for(int j1;j<n;j){dp[i][j]dp[i-1][j]dp[i][j-1];}}return …

【IR 论文】HyDE:让 LLM 对 query 做查询改写来改进 Dense Retrieval

论文&#xff1a;Precise Zero-Shot Dense Retrieval without Relevance Labels ⭐⭐⭐⭐ CMU, ACL 2023, arXiv:2212.10496 Code: github.com/texttron/hyde 文章目录 论文速读总结 论文速读 在以往的 dense retrieval 思路中&#xff0c;需要对 input query 做 encode 来得到…

Spring6 当中 Bean 的生命周期的详细解析:有五步,有七步,有十步

1. Spring6 当中 Bean 的生命周期的详细解析&#xff1a;有五步&#xff0c;有七步&#xff0c;有十步 文章目录 1. Spring6 当中 Bean 的生命周期的详细解析&#xff1a;有五步&#xff0c;有七步&#xff0c;有十步每博一文案1.1 什么是 Bean 的生命周期1.2 Bean 的生命周期 …

Halcon 检测物体定位点

文章目录 get_domain 返回所有输入图像的定义域作为一个区域add_channels 给区域增加灰度值find_shape_model 发现匹配模板find_shape_models 发现最佳模板示例 get_domain 返回所有输入图像的定义域作为一个区域 Halcon 中的区域 get_domain(Image : Domain : : ) Image : …

【JavaWeb Day 2 - JS 】

JavaWeb Day 2 - JS JS背景故事1. JS 引入方式2. JS 基本语法2.2 变量2.3 数据类型2.4 运算符 3. JS 函数4. JS 对象4.1 Array对象4.2 String对象4.3 JSON对象4.4 BOM对象4.4.1 windows 对象4.4.2 location 对象 4.5 DOM 对象DOM 案例 5. JS 事件监听5.1 JS 事件绑定 及 常见事…

Docker--compose概述与部署

目录 一、概述 1. Compose简介 1.1 docker compose常用命令 1.2 Compose配置常用字段 2. YAML简介 2.1 YAML支持的数据结构 2.2 YML文件编写注意事项 2.3 Docker Compose文件结构 3. Docker-Compose安装 ​编辑 4.docker Compose撰写nginx 镜像 1. 准备环境 ​编辑…

TinyMaix在x210开发板上的移植

目录 说明 环境准备 编译代码 源程序下载 修改tm_port.文件 修改CMake文件 测试程序运行 说明 我们教学中使用的x210开发板使用S5PV210这款CPU&#xff0c;它是根据三星的smdkv210开发板进行裁剪设计的&#xff0c;这个开发板非常的老了&#xff0c;不过在有经费购买新…

如何进行面向对象分析、面向对象设计和面向对象编程

目录 1.引言 2.案例介绍和难点剖析 3.如何进行面向对象分析 4.如何进行面向对象设计 5.如何进行面向对象编程 6.总结 1.引言 面向对象分析(OOA)、面向对象设计(00D)和面向对象编程(OOP)是面向对象开发的3个主要环节。 在以往的工作中&#xff0c;作者发现&#xff0c;很多…

one command each day on Linux

url address 1.12) grep Linux下面查找文本命令grep, 类似于Window编辑器的ctrlF查找我们想要的内容, PS:对比learning skill 看一下它的基础用法,准备一个目录文件和文本文件, 打印出这个单词,或者包含有这个字母的所有字符串 [rootiZ2vc5lqzt23aweti4j777Z ~]# grep hel…

【JAVA】part5-Java集合

Java 集合 Java集合概述 Java数组的局限性 数组初始化后大小不可变&#xff1b;数组只能按索引顺序存取。 Java的java.util包主要提供了以下三种类型的集合&#xff1a; List&#xff1a;一种有序列表的集合&#xff0c;例如&#xff0c;按索引排列的Student的List&#xff1b…

我们到底需要什么样的 BTC 一层协议?

在之前的一篇文章里 -- 《Runes 协议上线五天&#xff0c;大家在 FUD 什么&#xff1f;》&#xff0c;我简单分析了大家对 Runes 协议 FUD 的底层原因&#xff1a;目前的一层协议只是支持了毫无新鲜叙事的资产滥发&#xff0c;并没有实现让资产流动起来的更大价值。也正因为除了…

Vue阶段练习:初始化渲染、获取焦点

阶段练习主要承接Vue 生命周期-CSDN博客 &#xff0c;学习完该部分内容后&#xff0c;进行自我检测&#xff0c;每个练习主要分为效果显示、需求分析、静态代码、完整代码、总结 四个部分&#xff0c;效果显示和准备代码已给出&#xff0c;我们需要完成“完整代码”部分。 练习…

C#调用skiasharp操作并绘制图片

之前学习ViewFaceCore时采用Panel控件和GDI将图片及识别出的人脸方框和关键点绘制出来&#xff0c;本文将其修改为基于SKControl和SKCanvas实现相同的显示效果并支持保存为本地图片。   新建Winform项目&#xff0c;在Nuget包管理器中搜索并安装一下SkiaSharp和ViewFaceCore…

Ubuntu安装Neo4j

Ubuntu&#xff08;在线版&#xff09; 更新软件源 sudo apt-get update 添加Neo4j官方存储库 wget -O - https://debian.neo4j.com/neotechnology.gpg.key | sudo apt-key add - 将地址添加到系统的软件包源列表中 echo deb https://debian.neo4j.com stable latest | su…

.NET操作 Access (MSAccess)

注意&#xff1a;新项目推荐 Sqlite &#xff0c;Access需要注意的东西太多了&#xff0c;比如OFFICE版本&#xff0c;是X86还是X64 连接字符串 ProviderMicrosoft.ACE.OleDB.15.0;Data Source"GetCurrentProjectPath"\\test.accdb//不同的office版本 连接字符串有…

Mellanox网卡打流命令ib_write_bw执行遇到Couldn‘t listen to port 18515原因与解决办法?

要点 要点&#xff1a; ib默认使用18515命令 相关命令&#xff1a; netstat -tuln | grep 18515 ib_write_bw --help |grep port# server ib_write_bw --ib-devmlx5_1 --port 88990 # client ib_write_bw --ib-devmlx5_0 1.1.1.1 --port88990现象&#xff1a; 根因&#xf…

Spring Boot的热部署工具“AND”Swagger测试工具

Spring Boot的热部署&Swagger测试页面的使用 热部署指的是在项目无需重启的情况下&#xff0c;只需要刷新页面&#xff0c;即可获得已经修改的样式或功能。要注意该工具一般用于开发环境&#xff0c;在生产环境中最好不要添加这个工具。 对于无需重启便可刷新这么方便的工…

JAVA面试题分享---多线程与线程池

多线程 什么是线程?线程和进程的区别?&#xff08;了解&#xff09; 线程&#xff1a;是进程的一个实体&#xff0c;是 cpu 调度和分派的基本单位&#xff0c;是比进程更小的 可以独立运行的基本单位。 进程&#xff1a;具有一定独立功能的程序关于某个数据集合上的一次运…

edge 入门基础了解使用

随着Windows 11的发布&#xff0c;Microsoft Edge也迎来了新的更新和改进。作为一名长期使用Edge的用户&#xff0c;我不仅注意到了这些表面的变化&#xff0c;还深入研究了Edge在Windows 11上的新特性和潜在优势。 快捷方式 查找框 在Microsoft Edge浏览器中&#xff0c;按…