Подтвердить что ты не робот

Можем ли мы реализовать библиотеку Java с помощью Spring Boot?

В соответствии с именем потока я хотел бы создать библиотеку JAVA с помощью Spring Boot. Я нашел эту тему: Создание библиотеки с помощью Spring загрузки. Тем не менее, эти задачи потоков, по-видимому, решаются путем реализации его как REST API.

В настоящее время я разрабатываю библиотеку JAVA на основе Spring с помощью Spring Boot. И я попытался упаковать как файл jar и позволить другому JAVA-приложению использовать его в терминах библиотеки JAVA. К сожалению, я обнаружил, что когда приложение-вызывающий вызывает некоторые методы добавленной библиотеки, конфигурации, которые определены внутри библиотеки, вообще не работают. Он также показывает ошибку типа " CommandLineRunner не существует".

Для получения дополнительной информации снимок фрагмента файла pom.xml показан ниже. Согласно конфигурации, я не включаю зависимости для веб-приложений.

<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.assertj</groupId>
        <artifactId>assertj-core</artifactId>
        <version>2.3.0</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

4b9b3361

Ответ 1

При правильном проектировании это не должно быть проблемой вообще. Но в деталях это зависит от того, какие функции вы используете. Поскольку Spring поддерживает внешнюю библиотеку, такую ​​как JPA, Websocket,..

Есть две важные аннотации для разработки библиотеки и использования ее в другом проекте.

Первый - это просто @Configuration, а другой - @Import.

Проект библиотеки

Поместите класс в корневой пакет, который выглядит примерно так.

@Configuration // allows to import this class
@ComponentScan // Scan for beans and other configuration classes
public class SomeLibrary {
    // no main needed here
}

Другой проект с использованием библиотеки

Как обычно, класть класс в корневой пакет вашего проекта.

@SpringBootApplication
@Import(SomeLibrary.class) // import the library
public class OtherApplication {
    // just put your standard main in this class
}

Важно иметь в виду, что другие вещи могут потребоваться в зависимости от того, что вы используете в отношении других фреймворков. Например, если использование spring -data аннотации @EntityScan расширяет сканирование спящего режима.