昨天我尝试创建连接 Spring Boot 和 JavaFX 的项目。因此,我创建了一个项目,当我运行应用程序时,将创建 spring 上下文并运行 JavaFx 应用程序。但问题是当我尝试创建一些bean时,例如使用@Repository注释。当我自动装配时,值为空。CarGarageApplication.javapackage com.car.garage;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.ConfigurableApplicationContext;import org.springframework.context.annotation.ComponentScan;import org.springframework.data.jpa.repository.config.EnableJpaRepositories;import com.car.garage.dao.UsersRepository;import javafx.application.Application;import javafx.fxml.FXMLLoader;import javafx.scene.Parent;import javafx.scene.Scene;import javafx.stage.Stage;@SpringBootApplication@ComponentScan@EnableJpaRepositories("com.car.garage.dao")public class CarGarageApplication extends Application { private ConfigurableApplicationContext mainContext; private Parent rootNode; @Autowired UsersRepository usersRepository; public static void main(String[] args) { Application.launch(args); } @Override public void init() throws Exception { mainContext = SpringApplication.run(CarGarageApplication.class); FXMLLoader loader = new FXMLLoader(getClass().getResource("/fxml/WelcomePage.fxml")); loader.setControllerFactory(mainContext::getBean); rootNode = loader.load(); } @Override public void start(Stage primaryStage) throws Exception { primaryStage.setScene(new Scene(rootNode)); primaryStage.setResizable(false); primaryStage.show(); System.out.println(usersRepository); } @Override public void stop() throws Exception { mainContext.close(); }}
1 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
我们应该遵循以下方法来自动装配存储库类。因为从自动装配另一个类的地方必须有 SPRING STEREOTYPES 类(@Component,@Service 这样的)
@Component
public class Anotherclass{
@Autowired
private UsersRepository usersRepository;
}
添加回答
举报
0/150
提交
取消