代码拉取完成,页面将自动刷新
出现的异常如下
/C:/wangpeng/peng/IFx/ifx-fxClient/target/classes/com/ifx/client/app/fxml/main.fxml
at cn.edu.scau.biubiusuisui.config.FXMLLoaderPlus.constructLoadException(FXMLLoaderPlus.java:2602)
at cn.edu.scau.biubiusuisui.config.FXMLLoaderPlus.createElement(FXMLLoaderPlus.java:2760)
at cn.edu.scau.biubiusuisui.config.FXMLLoaderPlus.processStartElement(FXMLLoaderPlus.java:2709)
at cn.edu.scau.biubiusuisui.config.FXMLLoaderPlus.loadImpl(FXMLLoaderPlus.java:2530)
at cn.edu.scau.biubiusuisui.config.FXMLLoaderPlus.loadImpl(FXMLLoaderPlus.java:2444)
at cn.edu.scau.biubiusuisui.config.FXMLLoaderPlus.load(FXMLLoaderPlus.java:2415)
at cn.edu.scau.biubiusuisui.entity.FXBaseController.<init>(FXBaseController.java:98)
at com.ifx.client.app.controller.MainController.<init>(MainController.java:18)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:204)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:87)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1310)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1213)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:556)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:758)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:750)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1237)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)
at com.ifx.client.ClientApplication.main(ClientApplication.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767)
javafx.fxml.LoadException: Root value already specified.
使用的Demo
package com.ifx.client;
import cn.edu.scau.biubiusuisui.annotation.FXScan;
import cn.edu.scau.biubiusuisui.config.FXPlusApplication;
import cn.edu.scau.biubiusuisui.factory.BeanBuilder;
import cn.hutool.extra.spring.SpringUtil;
import com.ifx.client.util.SpringFxmlLoader;
import com.ifx.connect.netty.client.ClientLifeStyle;
import com.ifx.connect.properties.ClientNettyConfigProperties;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ApplicationContext;
import javax.annotation.Resource;
@SpringBootApplication
@Slf4j
@FXScan(base = "com.ifx.client")
public class ClientApplication extends Application{
//public class ClientApplication {
@Override
public void start(Stage stage) {
//接管FXPlus属性的创建
FXPlusApplication.start(ClientApplication.class, SpringUtil::getBean);
}
public static void main(String[] args){
SpringApplication.run(ClientApplication.class);
Runnable runnable = () -> {
ClientLifeStyle clientAction = SpringUtil.getBean(ClientLifeStyle.class); // 启动netty
clientAction.connect();
if (!clientAction.isAlive()) {
clientAction.reConnect();
}
};
runnable.run();
}
}