热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringBootwar或jarforrestapiproject

如何解决《SpringBootwar或jarforrestapiproject》经验,为你挑选了2个好方法。

我想使用Spring Boot开发示例REST API项目.我很困惑,什么应该是正确的做法,因为我们有包装多个选项,如war,jar等.

我要求我有外部库文件夹,它有多个jar和资源文件,将在REST API和前端使用(使用React).

由于动态变化,我希望将jar和资源保留为外部依赖项,我不想将它们包含在项目中.我已经尝试使用loader.path使用的示例项目jar工作正常但相同的方法不使用war文件.我使用Maven作为构建工具.

    在Spring Boot中实现这一目的的方法是什么?

    需要2.xx版本的工作示例

    应该使用什么warjar

    如何配置IDE(Eclipse/IntelliJ)使用libSpring 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/


推荐阅读
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • springmvc学习笔记(十):控制器业务方法中通过注解实现封装Javabean接收表单提交的数据
    本文介绍了在springmvc学习笔记系列的第十篇中,控制器的业务方法中如何通过注解实现封装Javabean来接收表单提交的数据。同时还讨论了当有多个注册表单且字段完全相同时,如何将其交给同一个控制器处理。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了Swing组件的用法,重点讲解了图标接口的定义和创建方法。图标接口用来将图标与各种组件相关联,可以是简单的绘画或使用磁盘上的GIF格式图像。文章详细介绍了图标接口的属性和绘制方法,并给出了一个菱形图标的实现示例。该示例可以配置图标的尺寸、颜色和填充状态。 ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • 纠正网上的错误:自定义一个类叫java.lang.System/String的方法
    本文纠正了网上关于自定义一个类叫java.lang.System/String的错误答案,并详细解释了为什么这种方法是错误的。作者指出,虽然双亲委托机制确实可以阻止自定义的System类被加载,但通过自定义一个特殊的类加载器,可以绕过双亲委托机制,达到自定义System类的目的。作者呼吁读者对网上的内容持怀疑态度,并带着问题来阅读文章。 ... [详细]
author-avatar
雷神白中凌
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有