精华内容
下载资源
问答
  • 创建项目 1.首先使用mvn命令创建一个基本的Java项目结构 // 创建MyProject目录,用于存放java项目 ...~/Desktop/MyProject$ mvn archetype:generate -DgroupId=com.wong -DartifactId=springboot -Dv...

    创建项目

    1.首先使用mvn命令创建一个基本的Java项目结构

    // 创建MyProject目录,用于存放java项目
    ~/Desktop$ mkdir MyProject 
    
    // 使用mvn命令创建java项目结构
    ~/Desktop/MyProject$ mvn archetype:generate -DgroupId=com.wong -DartifactId=springboot -Dversion=1.0.0 -DinteractiveMode=false
    
    // 创建好的java项目,因为我们指定了-DartifactId=springboot,所以我们的项目名就是springboot
    ~/Desktop/MyProject$ tree -L 1
    .
    └── springboot
    

    解释一下创建java项目结构的命令:

    • mvn:maven命令
    • archetype:generate:这是一个Maven插件,原型 archetype 插件是一个Maven项目模板工具包,可以用它创建基本的java项目结构。
    • -DgourpId: 组织名,公司网址的反写 + 项目名称
    • -DartifactId: 项目名(模块名)
    • -Dversion:项目版本号
    • -DinteractiveMode:是否使用交互模式:false不使用,直接创建;true使用,需要根据提示输入相关信息。

    温馨小提示:

    可以使用-DarchetypeArtifactId指定ArchetypeId快速创建Java应用,如:

    (1)创建一个Java应用:
    mvn archetype:generate -DgroupId=com.wong.company -DartifactId=shopingmall -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    (2)创建一个Web Project:
    mvn archetype:generate -DgroupId=com.wong.company -DartifactId=shopingmall -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

    2.在pom.xml文件中添加

    <project...>
      ...
      <!--spring-boot-starter-parent是spring boot 的父级依赖,它是一个特殊的starter>,用以提供相关的maven默认依赖-->
      <parent>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-starter-parent</artifactId>
              <version>2.2.5.RELEASE</version>
      </parent>
      <dependencies>
        <!--Spring Boot WEB依赖-->
        <!--项目导入web的启动依赖,SpringBoot就会集成SpringMVC,就可以进行Controller的开发-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        ...
      </dependencies>
    </project>
    

    温馨提示

    (1)spring-boot-starter-parent是spring boot 的父级依赖,它是一个特殊的starter,用以提供相关的maven默认依赖。关于spring boot 提供了哪些jar包的依赖,可以 ~/.m2/repository/org/springframework/boot/spring-boot-dependencies/2.2.5.RELEASE/spring-boot-dependencies-2.2.5.RELEASE.pom文件。顺便提一下,在linux下每个用户在自己的用户目录下都有一个路径名为 .m2/respository/ 的仓库目录。

    如果不想使用spring-boot-dependencies-2.2.5.RELEASE.pom中某个依赖默认的版本,可以在本项目的pom.xml中重新指定版本来覆盖默认的,例如下面。
    Spring Data默认版本在spring-boot-dependencies-2.2.5.RELEASE.pom是:

        <properties>
    	  ...
          <spring-data-releasetrain.version>Moore-SR5</spring-data-releasetrain.version>
    	  ...
    	<properties>
        <dependencies>
          <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-releasetrain</artifactId>
            <version>${spring-data-releasetrain.version}</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
         </dependencies>
    
    

    那么我们可以在本项目中的pom.xml重新指定版本:

        <properties>  
            <spring-data-releasetrain.version>Fowler-SR2</spring-data-releasetrain.version>  
        </properties>  
    

    (2)如果不想继承自spring-boot-starter-parent的POM,即<parent>那里指定不是spring-boot-starter-parent,而是其他的。但是,我们仍然可以通过使用scope = import依赖关系来保持与spring-boot-starter-parent的依赖关系管理,只需要在我们项目的pom.xml中添加:

        <dependencyManagement>  
             <dependencies>  
                <dependency>  
                    <!-- Import dependency management from Spring Boot -->  
                    <groupId>org.springframework.boot</groupId>  
                    <artifactId>spring-boot-dependencies</artifactId>  
                    <version>2.2.5.RELEASE</version>  
                    <type>pom</type>  
                    <scope>import</scope>  
                </dependency>  
            </dependencies>  
        </dependencyManagement>  
    

    上面我们通过修改属性spring-data-releasetrain.version实现了覆盖默认的版本,但是有时通过修改属性这种方式会存在一个问题,那就是使用这个属性的依赖有很多,我们一改就会全改,但我们并不想其他依赖的版本,那么怎么办呢?其实很简单,就是不要修改属性,直接重新定义依赖。但是需要在spring-boot-dependencies项之前的项目的dependencyManagement中添加一个配置,如要升级到另一个Spring Data版本:

        <dependencyManagement>  
            <dependencies>  
                <!-- Override Spring Data release train provided by Spring Boot -->  
                <dependency>  
                    <groupId>org.springframework.data</groupId>  
                    <artifactId>spring-data-releasetrain</artifactId>  
                    <version>Fowler-SR2</version>  
                    <scope>import</scope>  
                    <type>pom</type>  
                </dependency>  
                <dependency>  
                    <groupId>org.springframework.boot</groupId>  
                    <artifactId>spring-boot-dependencies</artifactId>  
                    <version>2.2.5.RELEASE</version>  
                    <type>pom</type>  
                    <scope>import</scope>  
                </dependency>  
            </dependencies>  
        </dependencyManagement>  
    

    (3)起步依赖 spring-boot-starter-xx
    Spring Boot提供了很多”开箱即用“的依赖模块,都是以spring-boot-starter-xx作为命名的。起步依赖就是自动给你封装好了你想要实现的功能的依赖。比如我们之前要实现web功能,就需要引入spring-boot-starter-web这个起步依赖。
    Spring Boot通过提供众多起步依赖降低项目依赖的复杂度。起步依赖本质上是一个Maven项目对象模型(Project Object Model,POM),定义了对其他库的传递依赖,这些东西加在一起即支持某项功能。很多起步依赖的命名都暗示了它们提供的某种或者某类功能。

    SpringBoot Maven插件

    这是在spring-boot-dependencies-2.2.5.RELEASE.pom,本项目pom.xml继承的pom中:

      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.springframework.boot</groupId>
              <artifactId>spring-boot-maven-plugin</artifactId>
              <version>2.2.5.RELEASE</version>
            </plugin>
            ...
          </plugins>
        </pluginManagement>
      </build>
    

    这个插件太重要了,它提供了很多的功能:

    • 把项目打包成一个可执行的超级JAR(uber-JAR),包括把应用程序的所有依赖打入JAR文件内,并为JAR添加一个描述文件,其中的内容能让你用java -jar来运行应用程序。
    • 「重要」搜索public static void main()方法来标记为可运行类

    更多SpringBoot Maven插件,请参考《SpringBoot Maven插件》

    编制应用入口类

    package com.wong;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    /**
     * Hello world!
     *
     */
    @SpringBootApplication
    public class App
    {
        public static void main( String[] args )
        {
             SpringApplication.run(App.class,args);
        }
    }
    
    
    • @SpringBootApplication:是Sprnig Boot项目的核心注解,主要目的是开启自动配置。 @SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan
    • main方法:这是一个标准的Java应用的main的方法,主要作用是作为项目启动的入口。

    编写Controller

    必须要写在App启动类同一个包下才能够扫描到。

    package com.wong;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    @RestController
    public class First{
    	@GetMapping("hello")
    	public String index(){
    		return "Hello World!";
    	}
    }
    

    @RestController=@Controller+@ResponseBody的结合,使用这个注解的类里面的方法都以json格式输出。

    启动springboot项目

    三种项目启动方式

    • App的main方法
    • 使用命令:mvn spring-boot:run 启动
    • 使用命令:mvn package 进行打包,将生成的JAR文件,使用 java -jar 命令来运行
    ~/Desktop/MyProject/springboot$ mvn spring-boot:run
    

    在这里插入图片描述
    2020-03-22 02:23:31.204 INFO 10993 --- [ main] com.wong.App : Started App in 1.384 seconds (JVM running for 1.731)出现这句说话说明启动成功!

    测试

    在这里插入图片描述
    谢谢阅读!

    展开全文
  • 前言前面我们介绍的 ...那么在 SpringBoot 中如何来实现这样一个命令行模式的应用呢。其实也很简单,只要让 SpringBoot 的启动类实现一个 org.springframework.boot.CommandLineRunner 接口就可以了。操作步...

    前言

    前面我们介绍的 SpringBoot 都是在将如何实现一个独立运行的 web 应用。不过在实际应用场景中,很多时候我们也需要使用独立运行的程序来实现一些任务。那么在 SpringBoot 中如何来实现这样一个命令行模式的应用呢。其实也很简单,只要让 SpringBoot 的启动类实现一个 org.springframework.boot.CommandLineRunner 接口就可以了。

    操作步骤

    首先按照标准的方式在 IDEA 中建立一个标准的 springboot 的工程。在这个 SpringBoot 工程的启动类上实现 org.springframework.boot.CommandLineRunner 接口的 run 方法即可。如下所示package com.yanggaochao.demo;import org.springframework.boot.CommandLineRunner;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class CommandDemoApplication implements CommandLineRunner {    public static void main(String[] args) {

    SpringApplication.run(SpiderDemoApplication.class, args);

    }    @Override

    public void run(String... args) throws Exception {

    System.out.println("sldkjfslkdjf");

    }

    }

    这样的 SpringBoot 的执行方式就不再是一个独立运行的 web 的方式,而是一个命令行的方式。那么他和非 SpringBoot 命令行方式的不同在哪里呢?主要是他能够利用 SpringBoot 的其他所有功能。例如他可以自动装配工程中的其他服务类,并进行调用。例如,我们有一个服务如下。package com.yanggaochao.demo;import org.springframework.stereotype.Service;/**

    * 服务样例

    *

    * @author : 杨高超

    * @since : 2018-11-19

    */@Servicepublic class HelloService {    public String sayHello(String name) {        return "Hello," + name;

    }

    }

    那么,我们在 SpringBoot 的命令行程序中就可以调用他了。原来的启动类代码改变为package com.yanggaochao.demo;import org.springframework.boot.CommandLineRunner;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class CommandDemoApplication implements CommandLineRunner {    private final HelloService helloService;    public CommandDemoApplication(HelloService helloService) {        this.helloService = helloService;

    }    public static void main(String[] args) {

    SpringApplication.run(SpiderDemoApplication.class, args);

    }    @Override

    public void run(String... args) throws Exception {        if (args.length == 0) {

    System.out.println(helloService.sayHello(args[0]));

    } else {

    System.out.println(helloService.sayHello("nobody"));

    }

    }

    }

    这样,我们如果输入一个参数 “world” 的时候执行这个命令行程序,则会输出 “Hello,world” 。如果不输入参数或者输入不止一个参数,则会输出 “Hello,nobody”

    作者:高超杨

    链接:https://www.jianshu.com/p/0bb00b8168af

    展开全文
  • jar的方式启动比如:java -jar bms.jar但是这种启动方式 一旦关闭控制台 或者crtl+c 退出 此时应用就关闭了所以我们需要换种方式springboot中的maven插件,提供了一种很方便的类似于shell的开启、关闭、重启服务的...

    一、使用内置的tomcat,通过java -jar的方式启动

    比如:java -jar bms.jar

    但是这种启动方式 一旦关闭控制台 或者crtl+c 退出 此时应用就关闭了

    所以我们需要换种方式

    springboot中的maven插件,提供了一种很方便的类似于shell的开启、关闭、重启服务的操作。而且这种启动方式是让项目在后台运行的,关闭shell也不会使项目停止运行

    1、首先,项目的pom添加下面的插件,然后maven install

    org.springframework.boot

    spring-boot-maven-plugin

    true

    2、将打包好的springboot jar包放入到服务器上,然后执行下面的命令

    sudo ln -s /usr/local/server/bms.jar /etc/init.d/bms

    3、上述命令执行完全之后,通过下面的命令就可以启动、关闭、重启项目了。

    /etc/init.d/bms start

    /etc/init.d/bms stop

    /etc/init.d/bms restart

    当然,有些人启动的时候,可能会报下面的一个错误,这是权限不足

    -bash: /etc/init.d/bms: Permission denied

    执行下面命令就可解决问题

    cd /etc/init.d/

    chmod a+x bms 或 chmod 777 bms

    二、使用war包方式,通过tomcat启动

    1、修改打包方式

    war

    2、移除springboot内置tomcat,添加测试tomcat依赖。。修改pom.xml文件

    org.springframework.boot

    spring-boot-starter-web

    org.springframework.boot

    spring-boot-starter-tomcat

    org.springframework.boot

    spring-boot-starter-tomcat

    provided

    3、修改启动类,

    在application的同目录下,添加一个新的类,继承SpringBootServletInitializer并重写其configure方法

    代码如下

    /**

    * 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法

    */

    publicclassSpringBootStartApplication extends SpringBootServletInitializer {

    @Override

    protectedSpringApplicationBuilder configure(SpringApplicationBuilderbuilder) {

    // 注意这里要指向原先用main方法执行的Application启动类

    returnbuilder.sources(BootStrap.class);

    }

    }

    4、将war包放到服务器上的tomcat下,重启即可。。。

    三、MyEclipse启动

    右键单击RestfulDemo类->Run As->Java Application

    启动完成

    如果看到图中红色的提示语,说明项目正常启动,此时在浏览器输入http://localhost:8080/,就能看到“Hello World!”的输出。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    展开全文
  • Spring Boot提供了命令行界面(Command Line Interface, CLI),可以用来运行和测试Spring Boot应用。Spring Boot及其CLI可以在Spring仓库中手动下载和安装,更简单的方式时通过Groovy环境管理器(Groovy enVironment ...

    Spring Boot提供了命令行界面(Command Line Interface, CLI),可以用来运行和测试Spring Boot应用。Spring Boot及其CLI可以在Spring仓库中手动下载和安装,更简单的方式时通过Groovy环境管理器(Groovy enVironment Manager,GVM)。

    基于CLI可以极速创建一个Web应用。接下来我们看看如何创建一个Spring MVC应用,以及如何支持在前端中使用Thymeleaf模板引擎和jQuery。我们将使用Groovy来创建项目,你会发现,一切简单得醉了!

    安装Spring Boot CLI

    CLI是Spring Boot自带的,首先我们要来安装Spring Boot。

    安装有多种方式,我们可以先通过GVM来安装:

    GVM安装之后( 注意这里要重启启动一个Terminal),Spring Boot的安装就非常简单了:

    gvm install springboot

    执行spring --version应该可以看到输出:

    Spring CLI v1.2.5.RELEASE

    如果使用Mac,也可以通过Homebrew来安装

    brew tap pivotal/tap

    brew install springboot

    spring --version

    OK,准备就绪,现在我们已经可以创建Spring应用啦!

    创建应用

    我们来创建一个最简单的应用吧!

    在应用中我们定义一个Spring MVC控制器,控制器可以接受/greeting请求,返回一个简单的页面。

    创建一个groovy文件:

    app.groovy

    @Grab("thymeleaf-spring4")

    @Controller

    class Application {

    @RequestMapping("/greeting")

    public String greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model) {

    model.addAttribute("name", name)

    return "greeting"

    }

    }

    控制前将会渲染greeting.html模板并返回,接下来我们就来创建模板。

    添加JavaScript库

    我们希望给页面增加一个jQuery的动画。因此增加模板之前,我们先引入jQuery,最简单的进入方式就是添加一个Groovy的@Grab标注,这样应用就能自动的去加载引入的JS资源。

    @Grab("org.webjars:jquery:2.0.3-1")

    提示

    Spring Boot使用webjars相关的知识这里不展开,大家自行学习

    创建Web界面

    现在可以创建Thymeleaf模板了,先建立一个模板目录:

    mkdir templates // 这是Spring Boot默认的模板目录,目录下的文件能够被Spring Boot找到

    模板文件如下

    greeting.html

    Getting Started: Spring Boot CLI + Javascript

    $(document).ready(function() {

    $('p').animate({

    fontSize: '48px'

    }, "slow");

    });

    运行

    应用加载的命令是:

    spring run -cp . app.groovy

    @Controller标注会告诉Spring Boot这是一个Spring MVC应用,因此会启动一个内嵌的Tomcat Servlet容器Spring Boot会自动从某些路径加载资源,比如会自动在/templates文件夹下去寻找Thymeleaf的模板

    此时,一个最简单的Web应用已经被创建出来了,我们可以根据需要继续增加所需要的功能。

    这个简单实例我们可以看到,Spring Boot CLI提供了一种非常快速的创建有后端服务的Web应用的方法,同时也支持添加JavaScript资源和HTML模板。我们同时也能缓存CSS资源. 基于CLI,我们无需创建项目文件,我们能最快的创建出一个Web应用,这正是Spring Boot开箱即用思想的一种体现,这为我们创建微服务体系结构提供了强大的支持,同时对于快速开发一些原型,或者进行轻量级的测试,也是非常有作用的。

    欢迎关注天码营微信公众号: TMY-EDU

    小编重点推荐:天码营网站

    展开全文
  • } } 以上代码就是启动一个Springboot进程,要进行命令行程序的运行,只需要开发实现CommandLineRunner 接口的代码,可以直接使用spring的自动启动,依赖注入等特性,如下我们开发第一个命令行程序,实现run方法的...
  • 如何给SpringBoot jar包传参数 针对这个问题Spring 提供了很便利的注解来实现 —— @Value() 实现的方法很简单 假设 test 就是我们要传的参数,在主程序的代码如下 @Value("${test}") private String test; ...
  • 摘要:本文我们重点分析一下Springboot框架中的命令行参数的使用以及框架内部处理的命令行参数的原理。众所周知,springboot项目可以有两种方式启动,第一种使用jar包;第二种使用war包。在使用jar方式的时候,我们...
  • 前提: Springboot项目,需要打成jar包放到服务器上面运行 1.代码已经写好,pom文件内容为: <groupId>com.demo</groupId> <artifactId>uiot-demo</artifactId> <version>1.0.1&...
  • 2.1 application 常用配配置 2.1.1 端口配置 properties 格式 #指定springboot内嵌容器启动的端口,默认使用tomcat容器时在8080端口 server.port=8081 yml 格式 #指定springboot内嵌容器启动的端口,默认使用tomcat...
  • Atitit 命令行执行springboot程序 目录 1.1. 执行spel表达式,调用app main,获取context 1 1.2. 直接在Applicationmain函数内执行 1 1.3. CommandLineRunner 1 2. 执行顺序[{frm CommandLineRunnerImp =...
  • 前两篇博文描述了node.js下载安装、cnpm创建vue项目相关内容,我们得到了一个能运行的最基础的vue框架。具体博文如下: https://blog.csdn.net/qq_15903671/article/details/82052035... ... vue项目命令行常用指令: ...
  • 从代码上来讲,命令行参数就是springboot启动类里面那个main方法中的那个args参数,程序启动时传给那个args变量的东东就是命令行参数。 怎么传 那么通过什么方式可以传给他呢?这里介绍两个方式 方式一:通过命令行...
  • 但是数据分析和一些基础数据提供等需要用到Java来做,所以就是一个后台项目分成Java和Python来做,有一些数据就需要从Python端查出来再提供给Java使用,Python使用的是django,Java是Springboot,Python调Java可以...
  • 各个服务之间通过注册与订阅的方式相互依赖,服务之间的通讯可以用Feign Client 或者用Apache CXF 通过URL调用远程WebService 进行调度(都是基于Restful风格,通讯机制很多种)Apache CXF方式一:apache-cxf-3.1.12,...
  • 在服务器上部署SpringBoot 项目时,因为是打的 jar 包,还得 kill 掉原来的进程再重新部署,过于麻烦就写了一个自动化的脚本来完成这个功能。(需要 Python 环境)其中一些路径可根据实际情况进行配置。jvm 参数也可以...
  • QUESTION:SpringBoot的使用cmd命令进行Gradle构建 ANWSER: 目录 QUESTION:SpringBoot的使用cmd命令进行Gradle构建 ANWSER: 一:下载SpringBoot工程 二:CMD命令构建gradle 一:下载SpringBoot工程 打开:...
  • 在Linux服务器上的Java程序中,调用git clone,之后遍历git仓库中的所有文件。 实现方式 使用Java native的Process类和ProcessBuilder类,来执行命令行 关键代码 // cmd命令 String gitCmd = "git clone ...
  • springboot 远程调用shell脚本,环境为windowspom.xml配置yml配置文件实体类配置服务器SSH 由于需要调用shell脚本实现一些自动化控制操作,特记录一下实现代码。 主要使用到Ganymed SSH-2 for Java包,是java实现SSH...
  • 主要介绍了Spring Boot调用 Shell 脚本实现看门狗功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
  • 需要将python脚本放到static目录下,不然找不到 原文链接:http://blog.maptoface.com/post/154
  • https://www.cnblogs.com/wangxiaofengde/p/12618426.html
  • springboot 调用webservice

    千次阅读 2019-12-27 15:21:41
    进入cmd命令行: wsimport -encoding utf-8 -keep C:\Users\shangshibang\Desktop\ho\12M\1227\webservice\WeatherWebService.wsdl 可以看到,代码已经生成: 二、springboot项目整合生成的代码: ...
  • spring boot 命令行启动的一些坑

    千次阅读 2017-11-06 18:39:43
    同时也是1问题中原因未知的问题所在,在springboot项目启动的主函数中,代码如下 SpringApplication.run(Application.class); 我原本是这样写的,没有传递参数args,所以无论如何也没办法修改环境,下面的这个是正确的 ...
  • springboot项目在启动时需要将数据库中的字典项同步到redis中,每次启动都需要重新加载,需要在项目启动后调用某个service类来进行数据同步。 二、实现 springboot提供了两个接口CommandLineRunner、Application...
  • SpringBoot 调用python接口

    千次阅读 2021-12-03 17:13:06
    SpringBoot调用Python脚本一、前言二、方法1...其实一句话来说就是利用springboot(Java)中的命令行进行调用,直接上代码。 1、代码 python文件可以放在任意位置,但是如果后续需要进行部署的话建议放在springboot
  • 本内容也是我尝试整理工作中接触过各种工具在springboot中使用的方法。下面介绍的所有方法都已经提供了测试用例。因为每个例子涉及代码较多,所以文章中只贴出了部分代码。全部的代码在这里gitee代码仓库 spring ...
  • Spring Boot程序接收命令行参数

    千次阅读 2018-09-21 17:05:13
    Spring Boot程序可以通过实现CommandLineRunner接口,接收来自命令行的参数。 1. 创建Spring Boot应用程序 通过Spring Boot提供的工具,生成样例框架程序,不用勾选任何其它额外依赖功能。 2. 修改Application类 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 9,235
精华内容 3,694
关键字:

命令行调用springboot服务

spring 订阅