还在为生成springboot 微服务应用而烦恼吗

137 阅读1分钟

前言

在微服务大行其道的今天,我们每天都可能产生很多应用。对应基于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地址:

github.com/mikewang88/…

参考

ke.qq.com/course/8042…

ke.qq.com/course/4748…