淘宝官网首页网站,免费做试卷的网站,服务好的高端网站建设报价,上海网页制作培训机构CUBA平台的第七版向前迈出了一大步。 内部体系结构的改进和新的IDE为进一步改进奠定了良好的基础。 我们将继续添加新功能#xff0c;以使开发人员的生活更轻松#xff0c;并使他们的工作更加高效。 在7.2版中#xff0c;我们引入了许多可能看起来像是主要更新的更改#… CUBA平台的第七版向前迈出了一大步。 内部体系结构的改进和新的IDE为进一步改进奠定了良好的基础。 我们将继续添加新功能以使开发人员的生活更轻松并使他们的工作更加高效。 在7.2版中我们引入了许多可能看起来像是主要更新的更改但是由于版本7的灵活性这仅仅是自然的平台发展。 多种语言CUBA 现在作为基于CUBA的应用程序的一流语言Kotlin已得到完全支持。 现在您可以使用Kotlin创建实体服务屏幕控制器和所有其他组件。 Kotlin中的代码允许您使用更短更简洁的语句因此您可以比以前更快地创建应用程序。 使用IDE中的IntelliJ IDEA语言支持我们能够实现与Java相同的功能上下文驱动的注入智能提示代码生成等。 这是一个简单实体的示例。 如您所见该代码比Java短得多没有getter和setter方法该代码完全可读且清晰。 NamePattern ( %s|name ) Table (name PETCLINIC_VET ) Entity (name petclinic_Vet ) class Vet : StandardEntity() { NotNull Column (name NAME , nullable false , unique true ) var name: String? var name: String? null companion object { private const val serialVersionUID -8600988577624886948L } } 对于以前使用CUBA的任何人屏幕控制器看起来都非常熟悉 UiController ( petclinic_Vet.edit ) UiDescriptor ( vet-edit.xml ) EditedEntityContainer ( vetDc ) LoadDataBeforeShow VetEdit : StandardEditorVet() { class VetEdit : StandardEditorVet() { Inject private lateinit var vetService: VetService Subscribe ( assignVisit ) private fun onAssignVisitClick(event: Button.ClickEvent) { vetService.scheduleVisit(editedEntity, LocalDateTime.now()); } } 和服务 interface VetService { companion object { const val NAME petclinic_VetService } fun scheduleVisit(vet: Vet, visitDate: LocalDateTime): Visit } Service (VetService.NAME) VetServiceBean : VetService { class VetServiceBean : VetService { Inject private lateinit var dataManager: DataManager override fun scheduleVisit(vet: Vet, visitDate: LocalDateTime): Visit { //Business logic for a visit scheduling } } 该代码与Java完全兼容您甚至可以在同一应用程序中混合使用Kotlin和Java。 最后在Kotlin上编程很有趣没有双关语 安全子系统更新 安全始终很重要。 我们对安全子系统进行了彻底的审查并决定使用“默认情况下拒绝”方法。 对于以前使用CUBA的人来说这听起来可能很不寻常但是“个人安全胜于遗憾”的座右铭在泄露个人数据时极为重要。 与往常一样我们为使用早期CUBA版本开发的应用程序提供了迁移路径。 另一重要的事情-设计时角色定义。 现在您可以用Java代码定义访问规则因此您无需从测试环境中导出角色定义并将其导入生产版本。 我们不会放弃传统的运行时角色定义只是向安全子系统添加了一项功能。 是否要使用运行时角色设计时角色还是同时使用这两种角色完全取决于您。 这是为实体属性和屏幕定义访问规则的示例 Role (name Customers Full Access ) public class CustomersFullAccessRole extends AnnotatedRoleDefinition { EntityAccess (target Customer. class , allow {EntityOp.CREATE, EntityOp.READ, EntityOp.UPDATE, EntityOp.DELETE}) Override public EntityPermissionsContainer entityPermissions() { return super .entityPermissions(); } EntityAttributeAccess (target Customer. class , modify { name , email }) Override public EntityAttributePermissionsContainer entityAttributePermissions() { return super .entityAttributePermissions(); } ScreenAccess (allow { application-demo , demo_Customer.browse , demo_Customer.edit }) Override public ScreenPermissionsContainer screenPermissions() { return super .screenPermissions(); } } 它看起来比“传统的”运行时定义更为冗长但是这种方法使我们可以对各种应用程序组件进行更细粒度的访问。 结合新引入的范围更新的安全子系统将使您的应用程序更安全。 更好的通用用户界面 我们将继续支持和更新通用UI子系统。 在此版本中我们使默认的侧菜单可折叠以节省应用程序屏幕上的更多空间。 您可以在启动应用程序后立即看到它。 至于屏幕内部现在开发人员可以在XML屏幕描述符中定义视图因此无需在单独的文件中创建视图。 data instance id orderDc class com.company.sales.entity.Order view extends _local property name lines view _minimal property name product view _local / property name quantity / /property property name customer view _minimal / /view loader/ /instance /data 除此之外我们还添加了一些较小的更改以简化开发人员的工作 表单中元素的灵活位置 网格的初始排序 选择/取消选择所有网格命令 按钮快捷方式 日期和时间字段的改进 和更多 简化部署 在此版本中您可以直接在应用程序中配置数据库连接。 作为JNDI定义的替代方法您可以在app.properties文件中定义连接属性。 cuba.dbmsType hsql cuba.dataSourceProvider application cuba.dataSource.username sa cuba.dataSource.password cuba.dataSource.dbName petclinic cuba.dataSource.host localhost cuba.dataSource.port 9010 此功能使应用程序独立于应用程序服务器环境。 结合弹簧轮廓此功能变得更加强大-7.2版的另一个功能。 Spring概要文件使您可以定义特定于部署环境的bean。 例如您可以为开发和生产服务器使用不同的实现。 public interface HelloService { String NAME demo_helloService ; String hello(String input); } Service (HelloService.NAME) Profile ( dev ) public class HelloDevServiceBean implements HelloService { Override public String hello(String input) { return Development stub: hello input; } } Service (HelloService.NAME) Profile ( prod ) public class HelloProdServiceBean implements HelloService { Override public String hello(String input) { return Production service: hello input; } } 可以在web.xml文件中激活配置文件也可以通过在命令行中设置环境属性spring.profiles.active来激活配置文件 java -Dspring.profiles.activeprod -jar app.jar Spring概要文件不仅可以应用于bean还可以应用于配置文件。 例如您可以在profile-app.properties文件中定义特定于profile-app.properties文件的数据源连接属性。 或为测试和生产环境指定不同的SMTP服务器。 说“否”以测试客户的收件箱文件夹中的电子邮件 CUBA Studio更新 CUBA Studio支持上述所有功能。 我们的主要开发工具也在不断开发中。 我们将添加新功能利用新的IntelliJ API并改进代码生成算法以尝试使所有自动化过程自动化因此您不必编写重复无聊的样板代码。 更新的完整列表可以在此处找到让我们仅回顾最重要的更新 新的登录屏幕模板。 现在您可以使用更“品牌友好”的登录窗口。 屏幕设计器UI进行了重新设计我们拆分了其面板以节省IDE窗口空间并允许开发人员在编辑XML布局时看到更改。 扩展了项目向导以支持新的编程语言并允许我们输入其他信息如语言环境和主要数据存储区属性。 结论 通过此更新使用CUBA框架的开发变得更加轻松快速和令人兴奋。 使用Kotlin您将有机会使用一种最流行的编程语言。 由于在应用程序中配置了spring概要文件和数据源因此简化了到不同环境的部署。 通用UI的改进将帮助您以更高的准确性将设计师对理想用户界面的幻想带入现实。 而且我们仍然保持该框架向后兼容因此您的应用程序升级到7.2版应该尽可能的顺利。 您可以在此处找到具有所有更改的发行说明。 翻译自: https://www.javacodegeeks.com/2020/02/cuba-7-2-whats-new.html