概要Java全栈Web开发框架Hilla
发布时间:2025/08/04 12:17 来源:颍上家居装修网
icon: 'la la-globe',
title: 'Hello World',
},
{
path: 'about',
component: 'about-view',
icon: 'la la-file',
title: 'About',
action: async (_context, _command) => {
await import('./views/about/about-view');
return;
},
},
];
export const routes: ViewRoute[] = [
{
path: '',
component: 'main-layout',
children: [...views],
},
];
数据库 2 里面的代码将偏移与接口相关联。与许多 JavaScript 组件一样,Hilla 应用于接口来指出示意三幅。在这种情形,当Gmail改投到纸面两条路线时,它将给予hello-world-view接口。(除此以外,其他两条路线给予额外的信息,如三幅标、书名和操作。)
收纳布局由 /frontend/views/main-layout.ts 处理过程,而 hello-world-view 的素材在 /frontend/views/helloworld/hello-world-view.ts 里面,如数据库 3 右三幅。
数据库 3. hello-world-view.ts
克隆
import '@vaadin/button';
import '@vaadin/notification';
import { Notification } from '@vaadin/notification';
import '@vaadin/text-field';
import { html } from 'lit';
import { customElement } from 'lit/decorators.js';
import { View } from '../../views/view';
@customElement('hello-world-view')
export class HelloWorldView extends View {
name = '';
connectedCallback() {
super.connectedCallback();
this.classList.add('flex', 'p-m', 'gap-m', 'items-end');
}
render() {
return html----
Say hello
----;
}
nameChanged(e: CustomEvent) {
this.name = e.detail.value;
}
sayHello() {
Notification.show(----Hel
数据库 3 里面的代码显示了 Lit 借助于示意三幅。如果你熟识声势浩大结构设计设计 JavaScript 习惯用法,那么;也确实很清楚。如果并未,详见我从未有对 Lit 的讲解。该render()步骤专责输入示意三幅的素材。我们将在这里用它侦查某个事物。特别是,我们想进去如何将这个后侧与我们的后侧 Java 侧点连接起来。
创建者 Java 侧点
Hilla 借助于在 Spring Boot 之上,因此我们可以像往常一样应用于 Spring Web借助于侧点。Hilla 给予了额外的功能来相应转换成将在 Lit 后侧应用于的 TypeScript。
/src/java/main/com/example/application首先在被初始化的文档里面创建者一个新近文档MyEndpoint.java。将数据库 4 的素材水印到该文档里面。
数据库 4. MyEndpoint.java
克隆
package com.example.application;
import com.vaadin.flow.server.auth.AnonymousAllowed;
import dev.hilla.Endpoint;
import dev.hilla.Nonnull;
@Endpoint
@AnonymousAllowed
Public @Nonnull class MyEndpoint {
public String foo() {
return "bar";
}
}
Hilla 的 @Endpoint记事告诉组件这个类是一个 REST API。该类也应用于记事开展@AnonymousAllowed记事,因为默认情形,Hilla 通过 Spring 相容性保护所有侧点。@Nonnull记事为后侧 TypeScript 转换成适当的类型初始化。
保留这个类文档后,你可以观察到 Hilla 从未在 /frontend/generated/MyEndpoint.ts 里面转换成了一个新近的 TypeScript 文档。我们将应用于这个模块从示意三幅里面点击侧点。
注意:不让对这些转换成的文档开展变更;Hilla 将根据对 Java 文档的变更其余均它们。
如今,离开到 frontend/views/helloworld/hello-world-view.ts,我们将在这里应用于我们的最简单侧点。在这种情形,我们想要输入需要初始化 foo() 侧点(即“bar”)的素材。数据库 5 显示了你确实对 hello-world-view.ts 文档开展的掺入。 (除此以外,我从未移除了大均在此之前的代码,只遗失了这个数据库的外加素材。)
数据库 5. Hello-world-view.ts
克隆
//...
import { customElement,property } from 'lit/decorators.js';
import { foo } from 'Frontend/generated/MyEndpoint';
@customElement('hello-world-view')
export class HelloWorldView extends View {
//...
@property()
myString: string = "";
constructor() {
super();
this.getString();
}
render() {
return html----
//...
${this.myString}
----;
}
async getString() {
this.myString = await foo();
}
}
这里的应将都是 MyEndpoint 模块里面借助于 foo() 函数,然后应用于它来初始化我们先前界定的远程后侧 Java 步骤。
为此,我们应用于 Lit TypeScript 记事 @property 在类上界定了一个反应要素,命名为string。我们将应用于此要素来磁盘来自服务器的值。为了装入它,我们初始化 async getString() 步骤,该步骤最简单地初始化 foo() 函数,并将离开值填入 myString。
Hilla 处理过程了大均工作,除此以外开展远程获取,因此我们不必权衡太多。
在 Hilla 里面应用于 Vaadin 接口
正如我先前提到的,Hilla 是 Vaadin Fusion,因此应用于 Hilla 借助于的操作系统可以透过你有可能从该组件里面了解的所有精心设计的接口。例如,让我们应用于 Vaadin 网格接口来查找很强书名和编者的小说作品集。
首先,我们将创建者一个假设;也,它只包内涵两个字符串,如数据库 6 右三幅。这个文档是一个典型的 Java 数据集;也。将其保留为 /src/main/java/com/example/application/Novel.java。
数据库 6. 用于磁盘小说作品的假设;也
克隆
package com.example.application;
import javax.validation.constraints.NotBlank;
public class Novel {
@NotBlank
private String title;
@NotBlank
private String author;
public Novel(String title, String author){
this.title = title;
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
}
在数据库 7 里面,我们给予来自 MyEndpoint 的小说作品此表。
数据库 7. 很强我小时候的小说作品此表的 MyEndpoint
克隆
package com.example.application;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import com.vaadin.flow.server.auth.AnonymousAllowed;
import dev.hilla.Endpoint;
import dev.hilla.Nonnull;
@Endpoint
@AnonymousAllowed
public class MyEndpoint {
private final List novels = new ArrayList();
MyEndpoint(){
Novel empireFalls = new Novel("Empire Falls", "Richard Russo");
Novel reservationBlues = new Novel("Reservation Blues", "Sherman Alexie");
Novel theAthenianMurders = new Novel("The Athenian Murders", "José Carlos Somoza");
this.novels.add(empireFalls);
this.novels.add(reservationBlues);
this.novels.add(theAthenianMurders);
}
public @Nonnull List getNovels() {
return this.novels;
}
}
在数据库 7 里面,我们打算了几本很强编者的小说作品,并将它们填入到 novels 要素里面。然后我们在 getNovels() 侧点里面公开数据集。
如今,让我们显示新近数据集,如数据库 8 右三幅。(除此以外,数据库 8 只显示了代码的变更均。)
数据库 8. 应用于网格显示小说作品
克隆
//...
import { foo, getNovels } from 'Frontend/generated/MyEndpoint';
import '@vaadin/grid/vaadin-grid';
@customElement('hello-world-view')
export class HelloWorldView extends View {
@property()
novels: object = {};
constructor() {
//...
this.initNovels();
}
render() {
return html----
----;
}
async initNovels(){
this.novels = await getNovels();
}
在此数据库里面,我们从 Hilla 为我们转换成的 frontend/generated/MyEndpont 借助于 getNovels ;也。然后,我们应用于该步骤作为 this.novels 素材的;也。
最后,我们应用于 this.novels 为借助于的 vaadin-grid 接口给予 .items 要素。最终结果是一个格结构设计设计良好的网格接口,而且工作量很小。
结语本文讲解了基于 Vaadin Fusion 的全栈组件 Hilla。Hilla 为应用于声势浩大结构设计设计后侧借助于 Java Web 操作系统给予了良好的集成互动。起先了Vaadin,它有许多有用的接口可供应用于。本文示例确实会让你对Hilla的应用于有一个初步的了解。
日文版讲解
陈豪,51CTO乡村编辑,很强6年工作方面的高级系统工程师。擅长技能有Linux内嵌汇编语言,Python,C,C++,Java,Linux驱动程序分析,智能机器人软件设计等。
文中书名:Intro to Hilla: The full-stack Java framework,编者:Matthew Tyson
。海露滴眼液开封后可以使用多久宁波男科医院哪里好
免疫细胞一般价格表
北京白癜风医院哪家专业好
宫颈癌可以治好吗
小儿神经内科
急支糖浆是治疗热咳还是寒咳
感冒
头晕
白带多粘稠怎么办
-
家族式团伙利用“边民互市”惊奇走私
表面上用公司做掩饰,暗中却分工明确、配合默契,12人的家族式匪帮利用“民团榷”的对外商易方式则非法交易保鲜中南美洲白螃蟹等养殖498内中,逃税近6000万元,就此落入法网。西城区第四中级人民法西
- 2025-08-19刚刚,江西发布疫情防控最新要求!
- 2025-08-19欧美油价怎么调?发改委回应!
- 2025-08-19因准备金计提错误、保险费率拒绝执行管控不严格 中国信保及直接责任人合计被罚58万元
- 2025-08-19首批国泰人寿牌照出炉!中信国泰人寿、北京国泰人寿两家金融控股公司获批设立
- 2025-08-19东安:蒋华检查指导疫情相适应工作
- 2025-08-19“唐初贡茶”陆续开采 茶旅“融活”千年文化
- 2025-08-19英媒:新泽西州射杀多名流浪汉枪手被捕
- 2025-08-19快讯丨交银施罗德基金将5000万元军用车辆旗下偏股型基金
- 2025-08-19中央网信办:治理直播打赏乱象 整治劣迹艺人违规重返
- 2025-08-19上海推迟今年3月全国计算机程序等级考试 将于下半年举行