日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

cuba.platform_CUBA 7.2 –有什么新功能?

發(fā)布時(shí)間:2023/12/3 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cuba.platform_CUBA 7.2 –有什么新功能? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

cuba.platform

CUBA平臺(tái)的第七版向前邁出了一大步。 內(nèi)部體系結(jié)構(gòu)的改進(jìn)和新的IDE為進(jìn)一步改進(jìn)奠定了良好的基礎(chǔ)。 我們將繼續(xù)添加新功能,以使開發(fā)人員的生活更輕松,并使他們的工作更加高效。

在7.2版中,我們引入了許多可能看起來像是主要更新的更改,但是由于版本7的靈活性,這只是自然的平臺(tái)發(fā)展。

多種語言CUBA

現(xiàn)在,作為基于CUBA的應(yīng)用程序的一流語言,Kotlin得到了完全支持。 現(xiàn)在,您可以使用Kotlin創(chuàng)建實(shí)體,服務(wù),屏幕控制器和所有其他組件。

Kotlin中的代碼允許您使用更短,更簡(jiǎn)潔的語句,因此您可以比以前更快地創(chuàng)建應(yīng)用程序。 使用IDE中的IntelliJ IDEA語言支持,我們能夠?qū)崿F(xiàn)與Java相同的功能:上下文驅(qū)動(dòng)的注入,智能提示,代碼生成等。

這是一個(gè)簡(jiǎn)單實(shí)體的示例。 如您所見,該代碼比Java短得多,沒有g(shù)etter和setter,該代碼可讀性強(qiáng)且清晰。

@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 } }

對(duì)于以前使用CUBA的任何人,屏幕控制器看起來都非常熟悉:

@UiController ( "petclinic_Vet.edit" ) @UiDescriptor ( "vet-edit.xml" ) @EditedEntityContainer ( "vetDc" ) @LoadDataBeforeShow VetEdit : StandardEditor<Vet>() { class VetEdit : StandardEditor<Vet>() { @Inject private lateinit var vetService: VetService @Subscribe ( "assignVisit" ) private fun onAssignVisitClick(event: Button.ClickEvent) { vetService.scheduleVisit(editedEntity, LocalDateTime.now()); } }

和服務(wù):

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完全兼容,您甚至可以在同一應(yīng)用程序中混合使用Kotlin和Java。

最后,在Kotlin上編程很有趣(沒有雙關(guān)語)!

安全子系統(tǒng)更新

安全始終很重要。 我們對(duì)安全子系統(tǒng)進(jìn)行了徹底的審查,并決定使用“默認(rèn)情況下拒絕”方法。 對(duì)于以前使用CUBA的人來說,這聽起來可能很不尋常,但是“個(gè)人安全勝于遺憾”的座右銘在泄露個(gè)人數(shù)據(jù)時(shí)極為重要。 與往常一樣,我們?yōu)槭褂迷缙贑UBA版本開發(fā)的應(yīng)用程序提供了遷移路徑。

另一重要的事情-設(shè)計(jì)時(shí)角色定義。 現(xiàn)在,您可以用Java代碼定義訪問規(guī)則,因此,您無需從測(cè)試環(huán)境中導(dǎo)出角色定義并將其導(dǎo)入到生產(chǎn)版本中。 我們沒有放棄傳統(tǒng)的運(yùn)行時(shí)角色定義,只是向安全子系統(tǒng)添加了一項(xiàng)功能。 您是要使用運(yùn)行時(shí)角色,設(shè)計(jì)時(shí)角色還是同時(shí)使用這兩種角色,均由您決定。

這是為實(shí)體,屬性和屏幕定義訪問規(guī)則的示例:

@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(); } }

它看起來比“傳統(tǒng)的”運(yùn)行時(shí)定義更為冗長,但是這種方法使我們可以對(duì)各種應(yīng)用程序組件進(jìn)行更細(xì)粒度的訪問。 結(jié)合新引入的范圍,更新的安全子系統(tǒng)將使您的應(yīng)用程序更安全。

更好的通用用戶界面

我們將繼續(xù)支持和更新通用UI子系統(tǒng)。 在此版本中,我們使默認(rèn)的側(cè)菜單可折疊,以節(jié)省應(yīng)用程序屏幕上的更多空間。 您可以在啟動(dòng)應(yīng)用程序后立即看到此信息。

至于屏幕內(nèi)部:現(xiàn)在,開發(fā)人員可以在XML屏幕描述符中定義視圖,因此無需在單獨(dú)的文件中創(chuàng)建視圖。

<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>

除此之外,我們還添加了一些較小的更改以簡(jiǎn)化開發(fā)人員的工作:

  • 表單中元素的靈活位置
  • 網(wǎng)格的初始排序
  • 選擇/取消選擇所有網(wǎng)格命令
  • 按鈕快捷方式
  • 日期和時(shí)間字段的改進(jìn)
  • 和更多

簡(jiǎn)化部署

在此版本中,您可以直接在應(yīng)用程序中配置數(shù)據(jù)庫連接。 作為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

此功能使應(yīng)用程序獨(dú)立于應(yīng)用程序服務(wù)器環(huán)境。 結(jié)合彈簧輪廓,此功能變得更加強(qiáng)大-7.2版的另一個(gè)功能。

Spring概要文件使您可以定義特定于部署環(huán)境的Bean。 例如,您可以為開發(fā)和生產(chǎn)服務(wù)器使用不同的實(shí)現(xiàn)。

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文件中激活配置文件,也可以通過在命令行中設(shè)置環(huán)境屬性spring.profiles.active來激活配置文件:

java -Dspring.profiles.active=prod -jar app.jar

Spring概要文件不僅可以應(yīng)用于bean,還可以應(yīng)用于配置文件。 例如,您可以在<profile>-app.properties文件中定義特定于<profile>-app.properties文件的數(shù)據(jù)源連接屬性。 或?yàn)闇y(cè)試和生產(chǎn)環(huán)境指定不同的SMTP服務(wù)器。 說“否”以測(cè)試客戶的收件箱文件夾中的電子郵件!

CUBA Studio更新

CUBA Studio支持上述所有功能。 我們的主要開發(fā)工具也在不斷開發(fā)中。 我們將添加新功能,利用新的IntelliJ API并改進(jìn)代碼生成算法,以嘗試使所有自動(dòng)化過程自動(dòng)化,因此您不必編寫重復(fù)無聊的樣板代碼。

更新的完整列表可以在此處找到,讓我們僅回顧最重要的更新:

  • 新的登錄屏幕模板。 現(xiàn)在,您可以使用更“品牌友好”的登錄窗口。
  • 屏幕設(shè)計(jì)器UI進(jìn)行了重新設(shè)計(jì),我們拆分了其面板以節(jié)省IDE窗口空間,并允許開發(fā)人員在編輯XML布局時(shí)看到更改。
  • 擴(kuò)展了項(xiàng)目向?qū)?#xff0c;以支持新的編程語言,并允許我們輸入其他信息,例如語言環(huán)境和主要數(shù)據(jù)存儲(chǔ)區(qū)屬性。

結(jié)論

通過此更新,使用CUBA框架的開發(fā)變得更加輕松,快速和令人興奮。 使用Kotlin,您將有機(jī)會(huì)使用一種最流行的編程語言。

由于在應(yīng)用程序中配置了spring profile和數(shù)據(jù)源,因此簡(jiǎn)化了部署到不同環(huán)境的工作。

通用UI的改進(jìn)將幫助您以更高的準(zhǔn)確性將設(shè)計(jì)師對(duì)理想用戶界面的幻想帶入現(xiàn)實(shí)。

而且我們?nèi)匀槐3衷摽蚣芟蚝蠹嫒?#xff0c;因此您的應(yīng)用程序升級(jí)到7.2版應(yīng)該盡可能的順利。

您可以在此處找到具有所有更改的發(fā)行說明。

翻譯自: https://www.javacodegeeks.com/2020/02/cuba-7-2-whats-new.html

cuba.platform

總結(jié)

以上是生活随笔為你收集整理的cuba.platform_CUBA 7.2 –有什么新功能?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。