我们可以通过使用Spring Boot来实现Java库吗?

2022-09-04 20:51:46

按照线程名称的指导,我想使用Spring Boot创建一个JAVA库。我发现了这个线程:使用Spring boot创建一个库罐。但是,该线程的目标似乎可以通过将其实现为REST API来解决。

目前,我正在使用Spring Boot开发一个基于Spring的JAVA库。而且,我试图打包为jar文件,并让另一个JAVA应用程序在JAVA库方面使用它。不幸的是,我发现当调用方应用程序调用添加的库的某些方法时,在库中定义的配置根本不起作用。它还显示类似“CommandLineRunner不存在”的错误。

有关详细信息,pom.xml 文件的代码段如下所示。根据配置,我不包括Web应用程序的依赖项。

<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>


答案 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 数据,则注释会扩展休眠扫描。@EntityScan


答案 2

推荐