首页 > 编程语言 >「Java开发指南」MyEclipse如何支持Spring Scaffolding?(四)

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

时间:2024-03-04 10:11:38浏览次数:29  
标签:Java Scaffolding Spring 编辑器 视图 DSL 组件

在上文中主要为大家介绍了应用程序分层、代码助手等内容,本文将继续介绍Spring DSL模型等。

MyEclipse v2023.1.2离线版下载

MyEclipse技术交流群:742336981 欢迎一起进群讨论

5. Spring DSL模型

支持Spring的MyEclipse还有一个特性,它是面向那些希望通过使用抽象层(模型驱动开发)来加速Spring应用程序开发的开发人员的。抽象层被称为领域特定语言(DSL), Spring DSL定义了11个抽象。每个Spring DSL抽象管理/生成一个或多个Spring web应用程序源工件(Java代码或XML配置文件),每个抽象都有自己专用的编辑器,用于配置抽象的实例。

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

Spring DSL定义了11个抽象,每个抽象都与一个或多个Java、Spring和JPA构件直接相关,并生成一组不同的代码或配置构件。

  • Spring DSL – 用于Spring DSL代码生成的项目范围配置。
  • Model Package – 用于命名空间和分组相关的Spring DSL组件,模型包可以包含任何顶级Spring DSL元素,包括其他模型包。模型包直接与Java包相关,并且在模型包中创建的Spring DSL构件被生成为匹配的Java包。
  • Web Controller – 用于使用Spring MVC定义应用程序的Web层和管理相关文件,Web控制器被生成为带有@Controller注解的Spring组件,这是Web层组件的一个特殊构造型。
  • Service – 用于定义业务层组件和管理相关文件,Services(服务)被生成为带有@Service注解的Spring组件,这是服务层组件的专用构造型。
  • Component – 用于定义通用的Spring管理Java bean和管理相关文件,组件被生成为带有@Component注释的Spring组件,这是具有可配置作用域的Spring管理组件的通用构造型。
  • Operation – 用于定义控制器、服务和组件的方法,操作表示应用程序逻辑,它们使用输入和输出来交换数据。操作直接在各自的Controller、Service和Component类中生成,并且它们的生成略有不同,以说明Spring构造型所需的不同实现。
  • Domain Object – 用于定义应用程序的域模型和管理相关文件。默认情况下,将域对象生成为普通的旧Java对象(POJO)。如果一个域对象与一个数据访问对象相关联,那么这个域对象被注释为一个带@Entity (JPA)注释的类,并且它与一个主键类(@IdClass)相关联。可以使用基本数据类型将字段添加到域对象中,并且域对象可以与其他域对象建立关系。
  • Data Access Object (DAO) – 用于将数据访问逻辑与应用程序逻辑分离,并管理相关文件。DAO管理领域对象的持久性,并将其生成为@Repository注释的Spring组件,这是数据访问层组件的专用构造型,DAO还可以包含称为命名查询的预定义查询。
  • Named Query – 用于定义数据访问对象(dao)的查询,命名查询使用SQL或JPQL (Java持久化查询语言)定义,命名查询生成为Spring @Repository组件中的@NamedQueries和@NamedQuery注释。
  • Exception – 用于定义自定义异常和管理相关文件,在Java中,异常被生成为异常类。
  • Flow – 用于使用Spring web Flow实现应用程序的web层。
编辑器

每个Spring DSL组件都有一个关联的编辑器,基于Spring DSL的开发由开发人员创建Spring DSL组件的实例,并使用各自的编辑器配置它们组成。当调用代码生成时,由各自组件管理的代码和配置文件将根据其配置生成。

快速开始学习Spring DSL和Spring编辑器的一个好方法是将“启用Spring DSL”特性与“Scaffold Spring CRUD应用程序”特性结合起来。当您只使用scaffolding时,Spring DSL或Spring editor在项目中不可用。但是如果在运行scaffolding向导之前运行Enable Spring DSL向导(从而启用Spring DSL并将Spring DSL视图添加到您的项目中),scaffolding向导将为所有搭建的应用程序组件创建相应的Spring DSL工件(模型包、控制器、服务等)。它们出现在项目的Spring DSL视图中,您可以使用Spring DSL和Spring编辑器维护和增强scaffolded构件。

引导

在使用Spring DSL进行应用程序开发的过程中,开发人员将相关的Spring DSL构件的实例添加到他们的项目中。他们使用各自的编辑器根据需求配置构建,MyEclipse根据配置生成源代码。这种自引导为应用程序开发提供了极大的速度和敏捷性,因为开发人员不必纠结于Spring的细节或保持相关工件的同步,这一切都是在不限制开发人员使用标准Eclipse Java编辑器或XML编辑器维护应用程序工件的情况下完成的。一些抽象(例如,领域对象、DAO)可以用来生成完全实现的应用程序组件,这些组件可以随时运行,不需要额外的开发。其他抽象(例如,控制器、服务、组件)关注于Spring的框架生成和配置,而生成的Java类和Java方法的实际实现是通过Java编码完成的。

各种功能(一些可选的)可以添加到项目中,包括:

  • 添加Spring应用程序运行时依赖项。
  • 用所需的Spring配置引导项目。
  • 启用代码生成生成器来自动生成代码。
  • 为Spring/Java工件的自动逆向工程启用代码同步构建器。
  • 启用Spring DSL,包括在项目中启用Spring DSL视图。
  • 将Spring Nature应用到项目中,以便通过Spring Elements节点查看和编辑Spring配置。
  • 支持按应用层(web、服务、领域和DAO)生成代码。
  • 为代码生成配置目标项目和文件夹。

注意:支持Spring的MyEclipse也将在CRUD搭建期间引导您的项目;但是scaffolding向导不会为您的项目设置代码生成或Spring DSL支持。如果您希望同时支持scaffolding和Spring DSL,那么应该首先启用Spring DSL,然后运行Spring scaffolding。

5.1 Spring DSL视图

当Spring代码生成facets被添加到Eclipse项目中时,一个Spring DSL视图被添加到项目中,当使用MyEclipse Spring透视图查看时,这个视图在project Explorer中是可见的。该元素显示了项目的Spring DSL构件的层次视图,它可以用于与Spring DSL交互,包括:

  • 配置项目级代码生成设置(双击Spring DSL,或右键单击,并从菜单中选择Open)
  • 打开Spring DSL编辑器(双击Artifact,或者右键单击,并从菜单中选择Open)
  • 创建新的Spring DSL工件(右键单击,并从菜单中选择New)
  • scaffolding(右键单击,选择Scaffold Spring CRUD Application From)

Spring DSL视图与Eclipse中的Java源代码视图非常相似,因此它非常直观,易于学习。工件由模型包组织,模型包直接与Java包相关。在一个模型包下,有一个或多个Spring DSL构件。如前所述,Spring DSL构件是管理一个或多个Java代码构件的抽象,Spring DSL视图允许您在抽象级别查看项目。如果您希望在代码级别查看项目,那么请查看源代码。

「Java开发指南」MyEclipse如何支持Spring Scaffolding? scaffolded项目的Spring DSL视图
5.2 Spring DSL编辑器

每个Spring DSL工件都有一个用于配置工件的特定编辑器,它随后会影响由Spring DSL工件管理的代码和配置文件的生成。

篇幅有限,更多内容持续关注,下期见~

标签:Java,Scaffolding,Spring,编辑器,视图,DSL,组件
From: https://www.cnblogs.com/AABBbaby/p/18051262

相关文章

  • SpringCloud Alibaba-5-并发访问
    微服务架构应用设计目的为了应对高并发环境!1.什么是并发,并行并发:指在同一时间段内,多个任务或进程同时执行或交替执行的能力。并行:指多个任务在同一时间段内同时执行,需要多个处理器或多核处理器来实现。总的来说,并发更多地强调任务之间的交替执行,而并行更多地强调任务的同......
  • Java编程的利器:Pair和Triple无缝解决多值返回问题,助力编写高效代码
    在实际编码中,经常会遇到一个方法需要返回多个值的情况,你编写一个方法,需要同时返回某个操作的结果和一些相关的附加信息。使用传统的方式,你可能需要创建一个包含这些信息的自定义类或者使用集合(如Map)来存储这些值。然而,这往往使得代码变得臃肿,而且对于调用方来说,理解和提取这些值......
  • Java 21 终于对这些功能动刀了!!
    来源:https://medium.com/@benweidig尽管Java是我使用过的向后兼容程度最高的语言和环境之一,但始终存在功能弃用甚至删除的可能性。Java21将弃用两个功能,这就是我们今天要讨论的内容。推荐一个开源免费的SpringBoot实战项目:https://github.com/javastacks/spring-boot-b......
  • "金三银四"挑战来袭:独家揭秘大厂Java面试真题,让你秒变求职战神!错过等一年!
    哈喽,欢迎来到【程序视点】,我是小二哥!前言随着"金三银四"求职高潮的到来,Java岗位的竞争变得前所未有的激烈。今天就给大家分享一份大厂Java面试真题!尤其是在目前的行业环境下,成千上万的开发者早就摩拳擦掌,投身于这场没有硝烟的竞争中了,但只有准备充足的人才能够脱颖而出,拿到心仪......
  • 「java.util.concurrent并发包」之 AQS
    AQS的原理是什么?AQS核心思想是,如果被请求的共享资源空闲,则将当前请求资源的线程设置为有效的工作线程,并且将共享资源设置为锁定状态。如果被请求的共享资源被占用,那么就需要一套线程阻塞等待以及被唤醒时锁分配的机制,这个机制AQS是用CLH队列锁实现的,即将暂时获取不到锁的......
  • Java 辨析之实例化和初始化
    在面向对象编程中,实例化和初始化是两个相关但不同的概念:实例化(Instantiation):实例化是指创建一个类的新的具体对象的过程。当程序运行时,通过new关键字调用类的构造函数来创建该类的一个实例。例如,在Java中:MyClassmyObject=newMyClass();在这行代码中,newMyClass()就是......
  • Java方法01:什么是方法?
    何谓方法?1.System.out.prtintln(),它是什么呢?2.Java方法是语句的集合,它们在一起执行一个功能。2.1.方法是解决一类问题的步骤的有序组合2.2.方法包含与类或对象中2.3.方法在程序中被创建,在其他地方被引用 3.设计方法的原......
  • JAVA面向对象基础:入门,搞懂对象
     packagecom.itheima.duyixiang;importjava.util.ArrayList;importjava.util.List;publicclassTest{publicstaticvoidmain(String[]args){Students1=newStudent();s1.name="凯文";s1.yuwen=22;s1.shuxu......
  • Spring 的 IOC 和 AOP 是什么,有哪些优点?
    Spring框架中的IOC是**控制反转**,AOP是**面向切面编程**。IOC是Spring框架的核心特性之一,它代表的是控制反转,意味着将对象的创建和管理交给Spring容器,而不是传统的在对象内部进行控制。这样可以实现对象之间的解耦,提高代码的可维护性和灵活性。IOC的底层原理包括XML解析、工厂模......
  • JAVA案例:实现双色球
     packagecom.itheima.anli;importjava.util.Random;importjava.util.Scanner;publicclassAnli5{publicstaticvoidmain(String[]args){int[]user=user();printarr(user);System.out.println();int[]xitong=xit......