Base Starter
只是增加了对
onAttach
方法。当您的组件连接到屏幕上的显示时,Vaadin框架将调用此方法。因此,如果只运行一次应用程序,我们应该看到这个方法被调用一次。
package com.basilbourque.example;
import com.vaadin.flow.component.AttachEvent;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.notification.Notification;
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
import com.vaadin.flow.router.Route;
/**
* The main view contains a button and a click listener.
*/
@Route ( "" )
public class MainView extends VerticalLayout {
public MainView () {
Button button = new Button( "Click me" ,
event -> Notification.show( "Clicked!" ) );
add( button );
}
@Override
protected void onAttach ( AttachEvent attachEvent ){
System.out.println( "onAttach running for `MainView` class. attachEvent.toString(): " + attachEvent + ". System.identityHashCode(this): " + System.identityHashCode(this));
}
}
当使用捆绑的Jetty web容器运行时,我看到:
转速表正在运行
MainView
班级。attachEvent.toString():com.vaadin.flow.component.attachEvent[source=com.basilbourque.example。MainView@454ff330]. 系统识别码(this):1162867504
但是,当我在外部运行Tomcat 9.0.12以供IntelliJ Ultimate edition 2018.3调用时,我看到:
转速表正在运行
班级。attachEvent.toString():com.vaadin.flow.component.attachEvent[source=com.basilbourque.example。MainView@21b91e99]. 系统识别码(this):565780121
转速表正在运行
主视图
班级。attachEvent.toString():com.vaadin.flow.component.attachEvent[source=com.basilbourque.example。MainView@5ee75022]. 系统识别码(this):1592217634
请注意,两个输出末尾的标识哈希是不同的。看来我是
获取两个
主视图
尽管只有一个用户(部署和启动Tomcat后IntelliJ会自动在浏览器中打开一个页面)创建。
为什么是
转速计
在外部Tomcat上运行两次,但在内部Jetty上只运行一次?
可能与
this Question
和
this Question
?
Application context
关于IntelliJ
Run/Debug Configuration
(在第二个选项卡上,
Deployment
)从
/bogus_war_exploded
/
,然后我得到
三
主视图
跑步。
班级。attachEvent.toString():com.vaadin.flow.component.attachEvent[source=com.basilbourque.example。MainView@4664fd83]. 系统识别码(this):1181023619
主视图
班级。attachEvent.toString():com.vaadin.flow.component.attachEvent[source=com.basilbourque.example。MainView@2390403]. 系统识别码(this):37291011
转速表正在运行
班级。attachEvent.toString():com.vaadin.flow.component.attachEvent[source=com.basilbourque.example。MainView@461aa7e4]. 系统识别码(this):117612036
更奇怪的是,如果我关闭了在部署时在web浏览器中自动打开Tomcat应用程序的URL的功能,也就是说,如果我取消选中
After launch
Open browser
第一个选项卡的部分
Server
在
Run/Debug Configurations
,然后我只得到了单身
主视图
实例。我必须在浏览器中手动打开一个页面,然后粘贴URL
http://localhost:8080/bogus_war_exploded
讽刺的是,我放弃了使用NetBeans,买了IntelliJ来避免类似的bug行为。请参见堆栈溢出,
Tomcat deploying the same application twice in netbeans
.
我正在使用:
-
-
Azul Systems通过Zulu JVM实现Java 10.0.2(基于OpenJDK)
-
Tomcat 9.0.12版
-
码头9.4.11.v20180605
-
项目创建自
基础起动器
-
-
马科斯高地
-