Java springbootwar或jarforrestapi项目
我想使用SpringBoot开发示例RESTAPI项目。我不知道什么是正确的方法,因为我们有多种包装选项,如Java springbootwar或jarforrestapi项目,java,reactjs,spring-boot,maven-2,Java,Reactjs,Spring Boot,Maven 2,我想使用SpringBoot开发示例RESTAPI项目。我不知道什么是正确的方法,因为我们有多种包装选项,如war,jar等 我有一个要求,即我有一个外部库文件夹,其中包含多个jar,以及将在RESTAPI和前端(使用React)中使用的资源文件 由于JAR和资源的动态变化,我希望将它们作为外部依赖项保留,并且我不希望将它们包括在项目中。我尝试了使用loader.path和jar的示例项目,虽然效果很好,但同样的方法不适用于war文件。我使用Maven作为构建工具 在Spring Boot中应该
war
,jar
等
我有一个要求,即我有一个外部库文件夹,其中包含多个jar
,以及将在RESTAPI和前端(使用React)中使用的资源文件
由于JAR和资源的动态变化,我希望将它们作为外部依赖项保留,并且我不希望将它们包括在项目中。我尝试了使用loader.path
和jar
的示例项目,虽然效果很好,但同样的方法不适用于war
文件。我使用Maven作为构建工具
war
或jar
lib
文件夹-我找不到解决方案您应该使它成为一个可执行的Spring引导JAR 只有在必须将WAR部署到JavaEE服务器上时,才需要WAR 你使用Maven很好。让it管理您的依赖项并构建包 您希望找到Maven插件,该插件创建包含依赖项的可执行JAR 更新: 以下是我对你的四个问题的回答:
mvn install
将您声称需要的所有外部库放置在本地.m2或Maven存储库中我建议您考虑单独部署REST服务,并让反应前端调用它。把两者分开。让REST服务成为一个独立的微服务,没有UI。您可以使用创建一个具有依赖项的可执行JAR文件
org.apache.maven.plugins
maven编译器插件
1.8
1.8
maven汇编插件
3.1.0
${mainClass}
带有依赖项的jar
包裹
单一的
将它添加到
元素中的pom.xml
中,可以构建jar
和jar依赖项包
要构建包,请使用mvn clean package
命令。选择jar还是war取决于您是想要一个独立的可执行应用程序,还是想要在Weblogic等服务器上部署您的项目。假设我的应用程序是一个复杂项目的中间层或适配器(助手应用程序),我会将其作为war部署在WebLogic上
对你来说,我的建议是用罐子代替战争。要构建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文件条目如下所示:
<bean id="customResourceLoader" class="com.howtodoinjava.demo.CustomResourceLoader"></bean>
附录-
如果你需要一个独立的应用程序,那就买一个jar吧
如果您需要在服务器中部署,请选择war
我已经尝试了您的示例代码,但它创建了带有依赖项的jar,我不想找这个,我想创建没有依赖项的SpringBootJAR,所有依赖项都应该复制到lib文件夹中。我在maven中找到了一个选项,它允许在没有依赖关系的情况下创建jar,并在lib folder中复制所有必需的jar谢谢你的回答,我将尝试使用链接作为工作示例,并更新youThanks Shubham作为你的答案,这似乎对我有效
<bean id="customResourceLoader" class="com.howtodoinjava.demo.CustomResourceLoader"></bean>