前言
在微服务大行其道的今天,我们每天都可能产生很多应用。对应基于spring boot的应用,使用JAR包方式启动,结构简单高效,不需要依赖外部TOMCAT。目前大部分微服务都是基于spring boot的应用,虽然官方提供了自动生成应用的快捷方式,但是不便于定制。基于此,总结一套代码模板。
顶层设计原则
一次打包,到处运行.应用包与具体的环境和机房彻底分离,尽量统一配置, 在此基础上尽量屏蔽框架对业务的复杂性,同时保留了灵活性和可介入性.
工程结构介绍
均为标准MAVEN项目
-
core/ 核心工程代码所在模块
-
client/ 二方库子模块,存放dubbo接口定义,常量等代码
工程图示
编写自定生成的shell 脚本
#!/bin/sh
if [ "$1" == "" ]; then
echo "app name must not be empty\n"
echo "usage:"
echo "\tsh generate APPNAME"
exit
fi
PKGNAME=`echo $1 | sed "s/-//g"`
cp -R /你的路径/demoserver $1
echo "now generating new project withe name $1"
rm -fr ./$1/.git
rm -fr ./$1/core/src/main/resources/special
rm -fr ./$1/*.iml
rm -fr ./$1/client/*.iml
rm -fr ./$1/core/*.iml
mv ./$1/client/src/main/java/com/dougwang/demoserver ./$1/client/src/main/java/com/dougwang/$PKGNAME
mv ./$1/core/src/main/java/com/dougwang/demoserver ./$1/core/src/main/java/com/dougwang/$PKGNAME
find ./$1 -type f -name "*.java" -exec sed -i '' "s/dubbodemoserver/$PKGNAME/g" {} \;
find ./$1 -type f -name "*.properties" -exec sed -i '' "s/dubbodemoserver/$1/g" {} \;
find ./$1 -type f -name "app.xml" -exec sed -i '' "s/dubbodemoserver/$PKGNAME/g" {} \;
find ./$1 -type f -name "pom.xml" -exec sed -i '' "s/dubbodemoserver/$1/g" {} \;
find ./$1 -type f -name "assembly.xml" -exec sed -i '' "s/dubbodemoserver/$1/g" {} \;
echo "all done!!!"
开心时刻
当我们需要新建应用时,只需要执行
bash generate studydemo[你的应用名字]
空应用就生成好了。
扩展性
可根据自己的实际业务需求来修改模板代码
git地址:
参考