前言

一直在ide中敲代码,使用命令行mvn spring-boot:run或者gradlew bootRun来运行spring boot项目。想来放到prod上面也应该很简单。然而今天试了下,各种问题。最大错误是1.4的bug:

Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: Unable to resolve persistence unit root URL

这个错误使我一直以为自己的代码有问题。找了半天没找到,最后想既然命令行可以运行ok,那么一个fat jar失败肯定不对了。于是上github去问,以为石沉大海准备睡觉的。想不到的是spring boot的成员秒回,找到问题是1.4版本中hibernate自动配置的问题,想我根本不需要hibernate,删除就可以了。

github 原问题:https://github.com/spring-projects/spring-boot/issues/6927

部署为可运行的jar

spring boot已经尽可能把需要配置的东西自动化了,我还傻傻的像以前springmvc那样补充各种配置,比如加一个数据源druid。然而大可不必,使用默认的就好,等需求不满足的时候,在进行修改就可以了。

同样的,既然内置的tomat可以很好的运行,为啥非要自己手动部署war包?

在gradle build或者maven package之后,会得到一个jar,这个jar是spring boot修改过的jar,可以直接运行。

运行方式:

maven添加plugin

      <plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${springboot.version}</version>
</plugin>

然后执行打包

mvn clean install package spring-boot:repackage
java -jar xxxx.jar

看到比较好的linux脚本:

start.sh

#!/bin/sh

rm -f tpid

nohup java -jar xx.jar --spring.profiles.active=dev > /dev/null 2>&1 &

echo $! > tpid

echo Start Success!

stop.sh

#!/bin/sh
APP_NAME=myapp tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi

check.sh

#!/bin/sh
APP_NAME=myapp tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'App is running.'
else
echo 'App is NOT running.'
fi

kill.sh

#!/bin/sh
APP_NAME=myapp tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
fi

博主不得转载,但还是看了怎么办:

Spring Boot 部署与服务配置

最新文章

  1. 14、ASP.NET MVC入门到精通——Ajax
  2. Web 2D/3d
  3. js动画之缓冲运动
  4. Python 之简易单链表
  5. 编译CDH Spark源代码
  6. 鸡和蛋的OO设计
  7. em和rem及rem在移动的应用
  8. a++ ++a 文件上传函数错误 smarty模板特点
  9. IT公司100题-12-求1+2+…+n
  10. 《苹果开发之Cocoa编程》挑战1 创建委托 练习
  11. 【原】rsync的详细参数
  12. common头文件
  13. AppWidget应用(二)---PendingIntent 之 getActivity
  14. Oracle Applications Multiple Organizations Access Control for Custom Code
  15. 201521123106 《Java程序设计》第14周学习总结
  16. 正则表达过滤表单隐藏元素,组装post数据
  17. canvas常用api
  18. Clover3(可以让Windows Explorer像浏览器一样有标签页)
  19. Oracle 常用Sql 语句
  20. Apollo的Oracle适配改动

热门文章

  1. UWP 律师查询 MVVM
  2. ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现&ldquo;定制化错误页面&rdquo;
  3. 火焰图分析openresty性能瓶颈
  4. Javascript - Promise学习笔记
  5. 漫扯:从polling到Websocket
  6. 几个比较”有意思“的JS脚本
  7. Android N开发 你需要知道的一切
  8. 原生javascript 固定表头原理与源码
  9. Java获取本机的IP与MAC地址
  10. 2016/12/28_javascript