作者:雷神白中凌 | 来源:互联网 | 2022-12-08 19:23
我想使用Spring Boot开发示例REST API项目.我很困惑,什么应该是正确的做法,因为我们有包装多个选项,如war
,jar
等.
我要求我有外部库文件夹,它有多个jar
和资源文件,将在REST API和前端使用(使用React).
由于动态变化,我希望将jar和资源保留为外部依赖项,我不想将它们包含在项目中.我已经尝试使用loader.path
使用的示例项目jar
工作正常但相同的方法不使用war
文件.我使用Maven作为构建工具.
在Spring Boot中实现这一目的的方法是什么?
需要2.xx版本的工作示例
应该使用什么war
或jar
?
如何配置IDE(Eclipse/IntelliJ)使用lib
Spring Boot的外部文件夹 - 我找不到解决方案.
duffymo..
13
你应该把它变成一个可执行的Spring Boot JAR.
如果必须在Java EE服务器上部署WAR,则只需要WAR.
你使用Maven很好.让它管理您的依赖项并构建包.
您想要找到创建可执行JAR的Maven插件,其中包含依赖项.
更新:
以下是我对您的四个问题的回答:
不要混用和匹配Maven和/ lib.最好用于将mvn install
您声称需要的所有外部库放在本地.m2或Maven存储库中.
有关工作示例,请参阅Spring Boot指南.也许服务和React前端应该是单独的包和部署.
这是Spring Boot,而不是Java EE.使用可执行的JAR,而不是WAR.
请参阅建议1.在Maven中安装这些JAR.不要混搭.
我建议您考虑单独部署REST服务,让React前端调用它.将两者分开.让REST服务成为一个独立的微服务,没有UI.
1> duffymo..:
你应该把它变成一个可执行的Spring Boot JAR.
如果必须在Java EE服务器上部署WAR,则只需要WAR.
你使用Maven很好.让它管理您的依赖项并构建包.
您想要找到创建可执行JAR的Maven插件,其中包含依赖项.
更新:
以下是我对您的四个问题的回答:
不要混用和匹配Maven和/ lib.最好用于将mvn install
您声称需要的所有外部库放在本地.m2或Maven存储库中.
有关工作示例,请参阅Spring Boot指南.也许服务和React前端应该是单独的包和部署.
这是Spring Boot,而不是Java EE.使用可执行的JAR,而不是WAR.
请参阅建议1.在Maven中安装这些JAR.不要混搭.
我建议您考虑单独部署REST服务,让React前端调用它.将两者分开.让REST服务成为一个独立的微服务,没有UI.
2> Shubham Chop..:
是否选择jar或war取决于您是否需要独立的可执行应用程序,或者您希望在Weblogic等服务器上部署项目.假设我的应用程序是复杂项目的中间层或适配器(帮助应用程序),我会将其作为战争部署在WebLogic上.
在你的情况下我的建议是使用JAR而不是WAR.要构建jar,请使用mvn clean install命令.
为了加载外部属性文件,您需要做的就是将文件夹名称和属性名称作为命令行参数的一部分传递,如下所示:
java -jar myapp.jar --spring.config.name=application,myapp
-- spring.config.location=classpath:/data/myapp/config,classpath:/data/myapp/external/config
为了从外部导入资源,您可以使用
Resource banner = resourceLoader.getResource("file:c:/temp/filesystemdata.txt");
代码段
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.springframework.context.ResourceLoaderAware;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
public class CustomResourceLoader implements ResourceLoaderAware
{
private ResourceLoader resourceLoader;
public void setResourceLoader(ResourceLoader resourceLoader) {
this.resourceLoader = resourceLoader;
}
public void showResourceData() throws IOException
{
//This line will be changed for all versions of other examples
Resource banner = resourceLoader.getResource("file:c:/temp/filesystemdata.txt");
InputStream in = banner.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
while (true) {
String line = reader.readLine();
if (line == null)
break;
System.out.println(line);
}
reader.close();
}
}
此文件的applicationContext.xml文件条目如下:
附录-
http://www.java2novice.com/spring-boot/load-external-configuration-files/
https://howtodoinjava.com/spring/spring-core/how-to-load-external-resources-files-into-spring-context/