前两天被人问到这样一个问题: "松哥,为什么我的 Spring Boot 项目打包成的 jar ,被其他项目依赖之后,总是报找不到类的错误?" 大伙有这样的疑问,就是因为还没搞清楚可执行 jar 和普通 jar 到底有什么区别?今天松哥就和大家来聊一聊这个问题. 多了一个插件 Spring Boot 中默认打包成的 jar 叫做 可执行 jar,这种 jar 不同于普通的 jar,普通的 jar 不可以通过 java -jar xxx.jar 命令执行,普通的 jar 主要是被其他应用…
Springboot给我们提供了两种"开机启动"某些方法的方式:ApplicationRunner和CommandLineRunner. 这两种方法提供的目的是为了满足,在项目启动的时候立刻执行某些方法.我们可以通过实现ApplicationRunner和CommandLineRunner,来实现,他们都是在SpringApplication 执行之后开始执行的. CommandLineRunner接口可以用来接收字符串数组的命令行参数,ApplicationRunner 是使用App…
报错信息如下 2017-10-23 15:16:09.750 ERROR 7664 --- [  restartedMain] o.s.b.d.LoggingFailureAnalysisReporter   : ***************************APPLICATION FAILED TO START*************************** Description: Cannot determine embedded database driver class…
Java 执行命令行命令 这个没技术含量的东西耗费了我半个多小时 String command = ....; Process process = Runtime.getRuntime().exec(command); 一个简单的命令这样执行时没问题的,但是如果参数中存在空格,那么就会出问题 会被分割为不同的参数,使用""包含起来也不行 解决方案: 使用重载的方法 String[]command = ....; Process process = Runtime.getRuntime(…
概述 1.Spring Boot聚合工程打包war部署Tomcat 2.Spring Boot打包Jar,通过Java -jar直接运行. 3.提供完整pom.xml测试项目 至github 4.项目目前了集成了 Spring Boot + Spring data jpa +Redis集群+dubbo+freemarker 持续更新... 解决问题 1.xxxx中没有主清单属性 2.解决没有web.xml而报错 [ERROR] Failed to execute goal org.apache.…
一.spring boot 内置tomcat配置https: 关于自签名证书可以看下上一篇 spring boot1 更详细的可以看转载 https://www.jianshu.com/p/8d4aba3b972d 二.spring boot 打包war部署tomcat: maven构建的项目的同学可以看下这https://blog.csdn.net/u013279563/article/details/81144154 个人是用gradle所以详细点的说明一下gradle的打包过程,如下 1.…
date: 2018-11-19 15:30:11 updated: 2018-11-21 08:28:37 Spring Boot打包部署 第一种方式 打包成jar包部署在服务器上 1.1 添加插件 <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> 1.2 打…
在Spring Boot应用启动之后立刻执行一段逻辑 1.CommandLineRunner 2.ApplicationRunner 3.传递参数 码农小胖哥:如何在Spring Boot应用启动之后立刻执行一段逻辑 项目启动后立马执行一些逻辑.比如简单的缓存预热,或者上线后的广播之类等等.如果你使用 Spring Boot 框架的话就可以借助其提供的接口CommandLineRunner和 ApplicationRunner来实现. 1.CommandLineRunner org.spring…
1.前言 工程做好了,总不能放在idea运行吧?不然怎么把项目放到云服务器呢?[这一篇随笔不讲解发布的云服务器的操作,在其他随笔有详细记载.] 解决的方案是把springboot 工程 打包成war文件 ,然后部署到外部tomcat服务器的webapps文件夹里面, 然后修改配置文件service.xml 用于修改访问端口与去除请求路径的工程名. [一般用一个tomcat可以设置多个节点,也就是说一个tomcat服务器可以同时开启多个工程,地址一样,用端口来区分, 但是 Tomcat 默认配置的…
环境配置信息 -** JDK 1.8 -** Spring Boot 1.5.3.RELEASE -** IDE: STS 3.4 Spring Boot下打包过程 基于STS创建Spring boot项目的过程中,开发工具已经在项目中创建好了相应的配置文件和信息,具体的文件如下: -** mvnw, mvnw.cmd 此为对mvn命令的封装 -** pom.xml maven项目的配置文件 ## Spring Boot打包过程 -** mvn clean : 删除target目录内容,清理打包…
spring/boot打包,将业务jar包和资源配置文件进行分离打包,打包后的资源在target/release文件夹下面 注意:添加以下配置后,注意修改自己的入口类 <!--相关编译打包依赖--> <build> <plugins> <!--打包jar--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-p…
spring boot打包以及部署 一.打包 springboot的打包方式有很多种.有打成war的,有打成jar的,也有直接提交到github,通过jekins进行打包部署的.这里主要介绍如何打成jar进行部署.不推荐用war,因为springboot适合前后端分离,打成jar进行部署更合适. 需要在pom.xml中增加主程序入口 <build> <plugins> <plugin> <groupId>org.springframework.boot<…
Spring Boot项目指定启动后执行的操作: (1)实现CommandLineRunner 接口 (2)重写run方法 (3)声明执行顺序@Order(1),数值越小,优先级越高 (4)如果需要注入service或者component等类,再加上@Component注解 package com.googosoft.gateway_zuul; import org.springframework.beans.factory.annotation.Value; import org.spring…
一.异常复现步骤 1)首先得是一个Spring MVC项目 注:Spring Boot项目有内置的web 容器,不会出现该问题 2)main方法存在于使用HttpServletRequest类的类中 3)项目POM中引入有javax.servlet-api坐标或没有 <!-- Servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-ap…
JVM 执行一个 Java 程序时,先从某个指定的 Java 类的 main 方法开始执行代码,同时,传一个字符串数组作为 main 方法的参数.例如在 Unix 系统上,执行下面的命令 java Test reboot Bob Dot Endzo JVM 会调用 Test 的 main 方法,同时把四个字符串 "reboot", "Bob", "Dot" "Endzo" 作为参数传给 main 方法. 那么,在执行 main…
Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键字的用法和平常容易误解的地方,最后列举了一些面试笔试中常见的关于static的考题.以下是本文的目录大纲: 一.static关键字的用途 二.static关键字的误区 三.常见的笔试面试题 若有不正之处,希望谅解并欢迎批评指正. 请尊重作者劳动成果,转载请标明原文链接: http://www.cnb…
新建一个java文件,含有main方法 package com.why.project.androidcnblogsdemo.utils; /** * Created by HaiyuKing * Used */ public class RunMain { public static void main(String[] args) { String result = "Run Main"; System.out.println(result); } } 点击选中类文件——鼠标右键—…
利用Method执行main方法 问题: 启动Java程序的main方法的参数是一个字符串数组,即public static void main(String[] args),通过反射方式来调用这个main方法时, 如何为invoke方法传递参数呢?按jdk1.5的语法,整个数组是一个参数,而按jdk1.4的语法,数组中的每个元素对应一个参数,当把一个字符 串数组作为参数传递给invoke方法时,javac会到底按照哪种语法进行处理呢?jdk1.5肯定要兼容jdk1.4的语法,会按jdk1.4的…
参考:idea 导入项目后不能执行main方法 用了ideal之后,发现自己的项目里面没有test文件夹,自己建了一个,发现竟然不能执行main函数, 后来经过点播之后,才知道,光建立文件夹是没用的,还有配置成test 方法: 在src下面建立test目录,跟main平级,然后点击file==>Project Structure ==>在右侧的Sources底下,选择刚才的新建的文件夹==>点击Tests标签,这样这个文件夹底下的全部都是 test文件了:…
运行内部类的main方法 定义两个线程: 一个线程的名字"thread1",线程功能输出1~10的阶乘. 另一个线程的名字"thread2",线程功能输出线程的名字10次. public class T1 extends Thread { public T1(String s) {super(s);} public void run() { int sum=1; for(int i=1;i<=10;i++) { sum=sum*i; System.out.pr…
问题 eclipse spring boot 项目出现java.lang.ClassCastException 解决方法: 重新生成项目…
1.当我们通过 maven 或 gradle 引入了 Spring boot 的安全组件 spring-boot-starter-security,Spring boot 默认开启安全组件,这样我们就需要先登录了,但是在开发过程中,我们并不想经常的登录(每重启一次服务必然带来一次登录操作,并且换了客户端同样需要登录),为减少这部分时间的浪费,我们目前有两种方法来禁用 Spring boot 安全组件,这两种方法并不需要我们将相应的代码删除或注释掉,省去了繁琐的操作. 1.1.maven 方式引入…
spring boot集成mybatis-plus插件进行自定义sql方法开发时报nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): Servlet.service() for servlet [dispatcherServlet] in context with path [/boot] threw exception [Request proc…
springBoot打包的时候代码和jar包打包在同一个jar包里面,会导致jar包非常庞大,在不能连接内网的时候调试代码,每次只改动了java代码就需要把所有的jar包一起上传,导致传输文件浪费了很多时间,所以如果打包的时候只把写成的代码打包,已经上传服务器的jar包不用修改,这样每次上传文件将会大大节省时间,接下来描述一下单独打jar包的过程. 1.瘦身插件 更改springBoot打jar包的插件即可改为一下格式:             <plugin>                …
1.设置打包的类型(war/jar) 在pom.xml里设置 <packaging>war</packaging> 2.移除嵌入式tomcat插件 //在pom.xml里找到spring-boot-starter-web依赖节点,将<exclusions></exclusions>之间的内容删除 <dependency> <groupId>org.springframework.boot</groupId> <art…
docker 安装 什么的 就不一一介绍了 不会安装百度一找一堆. 我这直接上代码. 首先你要有个spring boot项目. 然后打包.打包很简单 我打包的是 jar文件.直接在pom.xml文件里 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifa…
打包部署说白了就两步:打包.部署.废话不多说,直接拿spring boot自动生成的项目骨架,再添加一个文件用来演示: package com.crocodile.springboot; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.…
今天使用spring boot 2.1.1.RELEASE版本搭建项目,虽然可以直接打包成可运行的jar包,但是由于公司准备采用docker容器来管理项目,所以需要把jar包变成war包,并且war包内也不需要内嵌tomcat. 经历:按照网上说的在pom中添加代码(更改package类型是必须的<packaging>war</packaging>): <dependency> <groupId>org.springframework.boot</gr…
传统的 Java 应用程序都需要打一个 war 包,并到到 Tomcat webapps 目录下运行. Java 支持打 Jar 包,但没有提供一个标准的方式在一个 Jar 包内再加载嵌入别的 Jar 包,一般需要扩展类加载器来实现,即使这样,也做不到打成一个包运行,因为没有 Servlet 容器. 有了 Spring Boot 框架之后,这一切都变得简单,我们可以很方便的将应用程序打成一个可执行 Jar 包. 怎么打成 Jar 包运行? 1.添加插件 <plugin> <groupId…
小插曲:通过cmd运行startup.bat,cmd界面显示乱码 解决方法:进入tomcat目录,conf文件夹,用编辑器打开logging.properties 将java.util.logging.ConsoleHandler.encoding = UTF-8 改为 GBK 然后就正常显示日志了 下面示例打包war部署发布 首先,为tomcat修改一个独立的端口,防止和其它端口冲突 进入tomcat目录,打开conf文件夹,打开server.xml 三个地方都改下,比较靠谱 原8080,这里…