javaee和Wildfly创建不必要的bean
我有以下设置: Wildfly 11.0.0(测试版) Netbeans 8.2 和JDK1.8.0_144 当我使用简单的messagebean运行Java EE项目时,如下所示:javaee和Wildfly创建不必要的bean,java,wildfly,Java,Wildfly,我有以下设置: Wildfly 11.0.0(测试版) Netbeans 8.2 和JDK1.8.0_144 当我使用简单的messagebean运行Java EE项目时,如下所示: package com.message.jsf.MessageBean; import javax.enterprise.context.RequestScoped; import javax.inject.Named; @Named @RequestScoped public class MessageBe
package com.message.jsf.MessageBean;
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@Named
@RequestScoped
public class MessageBean {
public MessageBean(){
System.out.println("Starting MessageBean");
}
private String name="",message="";
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
System.out.println(name);
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
System.out.println(message);
}
}
和客户端视图:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://xmlns.jcp.org/jsf/passthrough"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
<h:head>
<title>just a tittle</title>
<h:outputStylesheet library="css" name="styles.css"/>
</h:head>
<h:body>
<f:view contracts="templateContractTest">
<ui:composition template="/template.xhtml">
<ui:composition template="./testingTemplate.xhtml">
<ui:define name="content">
<h:form>
<h:panelGrid columns="3"
columnClasses="rightalign,leftalign,leftali
gn">
<h:outputLabel value="Name:" for="Name"/>
<h:inputText id="firstName" label="Name"
required="true"
value="#{messageBean.name}" />
<h:message for="Name" />
<h:outputLabel value="Message:" for="Message"/>
<h:inputText id="lastName" label="Message"
required="true"
value="#{messageBean.message}" />
<h:message for="Message" />
<h:commandButton id="send" value="Send"
action="confirmation" />
</h:panelGrid>
</h:form>
</ui:define>
</ui:composition>
</ui:composition>
</f:view>
</h:body>
</html>
为什么服务器要创建2个bean?我确实理解为什么每次发送消息时它都会创建一个bean,但我不明白为什么第一个bean会被实例化,因为它没有被使用
17:11:48,457 INFO [stdout] (default task-6) Starting MessageBean
17:12:03,032 INFO [stdout] (default task-10) Starting MessageBean
17:12:03,151 INFO [stdout] (default task-10) name
17:12:03,152 INFO [stdout] (default task-10) message