gpt4 book ai didi

java - Spring Boot jpa 与 javafx 服务集成 null

转载 作者:太空宇宙 更新时间:2023-11-04 12:20:00 25 4
gpt4 key购买 nike

我已将 spring boot jpa 与 javafx 应用程序集成。集成成功并且 fx 屏幕加载了场景,问题是服务在 @Autowired 注释字段上获取 null。你可以在 github 上找到我的整个项目 boot-fx .

pom详细信息

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
</dependencies>

实体

@Entity
@Table(name = "LW_BLOOD_GROUP")
public class BloodGroup implements Serializable {
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID", nullable = false, length = 11)
private int id;
@Column(name = "GROUP_NAME", nullable = false)
private String groupName;
@Column(name = "CREATED_DATE", nullable = false)
private Date createdDate;
@Column(name = "IS_DELETE", nullable = false)
private boolean isDelete;

public BloodGroup() {
super();
}
//getters and setters
}

存储库

@Repository
public interface BloodRepository extends JpaRepository<BloodGroup, Integer>{
}

serviceimpl

@Service
public class BloodGroupServiceImpl implements BloodGroupService{
@Autowired
private BloodRepository bloodRepository;
@Override
public Collection<BloodGroup> findAllBloodGroup() {
return bloodRepository.findAll();
}
}

FX Controller

@Component
public class HomeController implements BootInitializable {
private ApplicationContext springContext;
@Autowired
private BloodGroupService bloodGroupService;
@Autowired
private BloodRepository bloodRepository;

@Override
public void initialize(URL arg0, ResourceBundle arg1) {}

@Override
public void setApplicationContext(ApplicationContext arg0) throws BeansException {
this.springContext = springContext;
}

@Override
public void initConstruct() {}

@Override
public void stage(Stage primaryStage) {}

@Override
public Node initView() {
try {
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource(Screens.HOME));
//loader.setController(springContext.getBean(this.getClass()));
return loader.load();
} catch (IOException e) {
System.err.println("can't load scene");
e.printStackTrace();
return null;
}
}

@FXML
private void addMemberSelect(){
if(bloodRepository!=null){
System.out.println("service initialized");
}else{
System.out.println("service null");
}
}

}

最佳答案

@James_D 在我的代码中找到问题。 我已经在 fxml 页面中指定了 Controller 。根据 james 的建议,将 Controller 从 fxml 删除为 fxml Controller ,例如 loader.setController(this)

关于java - Spring Boot jpa 与 javafx 服务集成 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38944767/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com