Загрузка ресурсов с помощью Springboot @Value и Javafx требует, чтобы файлы были в ресурсах/статике с модулями Java 9. ПJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Загрузка ресурсов с помощью Springboot @Value и Javafx требует, чтобы файлы были в ресурсах/статике с модулями Java 9. П

Сообщение Anonymous »

Как говорится в названии. Чтобы загрузить файл XML (и любой другой файл в этом отношении) с помощью аннотации значения Spring Boots, файл должен располагаться в ресурсах/статике/path-to-файле при использовании файла модуля info. Не включая статическую подпапку приводит к filenotfoundexception. < /p>
Может ли кто -нибудь объяснить, почему это так? Решения включают удаление файла Module info.java , удаление org.openjfx.javafxplugin Импорт или, как указано, перемещение XML в ресурсы/static/test/ или не использование Аннотация стоимости, но у меня обычно возникают трудности с пониманием модулей, и поэтому мне любопытно, почему возникает эта проблема.
Минимальный пример:
Структура проекта:

Код: Выделить всё

build.gradle
src
├───main
│   ├───java
│   │   │   module-info.java
│   │   │
│   │   └───com
│   │       └───example
│   │               App.java
│   │               TestLoader.java
│   │
│   └───resources
│       │   application.properties
│       │
│       ├───static
│       │   └───test
│       │           test.xml
│       │
│       └───test
│               test.xml
│
└───test
├───java
│   └───com
│       └───example
│               TestTest.java
│
└───resources
unused

< /code>
unused
- пустой файл, который необходим для создания папки тестового ресурса и избежать ошибки.package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class App
{
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
< /code>
Loader:
package com.example;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource;
import org.springframework.stereotype.Component;

import java.io.IOException;

@Component
public class TestLoader
{
private TestLoader(@Value("classpath:test/test.xml") Resource fxml) throws IOException
{
fxml.getInputStream();
}
}
< /code>
Module info:
module com.example {
requires spring.boot;
requires spring.boot.autoconfigure;
requires spring.context;
requires spring.core;
requires spring.beans;

opens com.example to spring.beans, spring.context, spring.core;
}
< /code>
Gradle build file:
plugins {
id 'java'
id 'application'
id 'org.openjfx.javafxplugin' version '0.0.13'
id 'org.springframework.boot' version '3.4.2'
id 'io.spring.dependency-management' version '1.1.7'
}

group 'com.example'
version '0.0.1-SNAPSHOT'

repositories {
mavenCentral()
}

java {
modularity.inferModulePath = true
}

application {
mainModule = 'com.example'
mainClass = 'com.example.App'
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter'

testImplementation('org.springframework.boot:spring-boot-starter-test'){
// https://github.com/spring-cloud/spring- ... issues/142
exclude group: "com.vaadin.external.google", module:"android-json"
}
testImplementation("org.junit.jupiter:junit-jupiter-api")

testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
useJUnitPlatform()
}
< /code>
Test:
package com.example;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class TestTest {
@Autowired
TestLoader loader;

@Test
public void test() {
}
}

< /code>
I have reviewed similar questions, but they all concern different questions. Thanks in advance!

Подробнее здесь: https://stackoverflow.com/questions/794 ... e-in-resou
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»