十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
最近花了一個(gè)月時(shí)間完成了一套基于Spring Boot+Vue+Shiro前后端分離的代碼生成器,目前項(xiàng)目代碼已基本完成
創(chuàng)新互聯(lián)公司:從2013年開(kāi)始為各行業(yè)開(kāi)拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為上千家公司企業(yè)提供了專業(yè)的做網(wǎng)站、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)和網(wǎng)站推廣服務(wù), 按需網(wǎng)站開(kāi)發(fā)由設(shè)計(jì)師親自精心設(shè)計(jì),設(shè)計(jì)的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺(jué)效果,策劃師分析客戶的同行競(jìng)爭(zhēng)對(duì)手,根據(jù)客戶的實(shí)際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。
該項(xiàng)目可根據(jù)數(shù)據(jù)庫(kù)字段動(dòng)態(tài)生成 controller、mapper、service、html、jsp、vue、php、.py ...等各種類型代碼,采用 velocity模板引擎在頁(yè)面動(dòng)態(tài)配置生成代碼,前后端動(dòng)態(tài)權(quán)限配置,前端權(quán)限精確到 按鈕級(jí)別,后端權(quán)限精確到 uri上,QQ授權(quán)第三方單用戶登錄...等
前端:Vue + Axios
后端:Spring Boot 、 MyBatis-Plus
緩存:Redis
權(quán)限:Shiro
.......

測(cè)試賬號(hào):test 密碼:123456
由于權(quán)限問(wèn)題 線上開(kāi)放的權(quán)限僅只是代碼生成器那一部分,需要權(quán)限控制、系統(tǒng)日志等功能可fork源碼參考~
三方登錄目前暫支持QQ授權(quán)登錄,默認(rèn)權(quán)限只有代碼生成器模塊,登錄過(guò)后,30分鐘內(nèi)不進(jìn)行操作將自動(dòng)下線,同一賬號(hào)在別處登錄將被擠下線,點(diǎn)擊頭像在個(gè)人信息中可自行修改賬號(hào)、密碼、昵稱

新建一個(gè)項(xiàng)目后,編輯項(xiàng)目包,這里和我們ide打開(kāi)一個(gè)項(xiàng)目下面的包層次類似,后面生成的代碼也將存放在此樹(shù)包目錄下,可以根據(jù)自己的需求來(lái)靈活配置建包

這里可以選擇給自己的項(xiàng)目添加一個(gè)初始模板,在項(xiàng)目模板管理處可選擇項(xiàng)目進(jìn)行一鍵新增生成對(duì)應(yīng)的模板
生成規(guī)則:根據(jù)項(xiàng)目管理中的包名與初始模板中的模板類型名對(duì)應(yīng)上即可生成,不對(duì)應(yīng)的即不會(huì)處理~
列表頁(yè)面和初始模板列表頁(yè)面類型,不同的是新增時(shí)需要選擇項(xiàng)目哦,后面的代碼生成將會(huì)依照這里配置的代碼模板動(dòng)態(tài)生成!
于是乎,整個(gè)代碼生成的精髓就在乎這里自己項(xiàng)目所配置的模板哦,這里也給出了可以參考配置的模板數(shù)據(jù)
數(shù)據(jù)源配置信息,要在根據(jù)數(shù)據(jù)庫(kù)字段生成一次代碼后才擁有數(shù)據(jù)可以查看哦,不然會(huì)是空數(shù)據(jù)!

ex: ${author} 對(duì)應(yīng)生成 zhengqing${package.input} 對(duì)應(yīng)生成 com.zhengqing.modules.system.dto.input
另外就需要參考 Velocity 模板引擎的基本語(yǔ)法使用了
這里再例出一個(gè)小編配置的實(shí)體類模板吧
溫馨小提示:在項(xiàng)目的sql中保存有小編代碼生成器項(xiàng)目中配置的項(xiàng)目模板以供參考哦~
package ${package.entity};
#foreach($pkg in ${table.importPackages})
import ${pkg};
#end
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* ${table.comment}
*
* @author: ${author}
* @date: ${date}
*/
#if(${table.convert})
@Data
@ApiModel(description = "${table.comment}")
@TableName("${table.name}")
#end
#if(${superEntityClass})
public class ${entity} extends ${superEntityClass}#if(${activeRecord})<${entity}>#end {
#elseif(${activeRecord})
public class ${entity} extends Model<${entity}> {
#else
public class ${entity} implements Serializable {
#end
private static final long serialVersionUID = 1L;
#foreach($field in ${table.fields})
#if(${field.keyFlag})
#set($keyPropertyName=${field.propertyName})
#end
#if("$!field.comment" != "")
/**
* ${field.comment}
*/
@ApiModelProperty(value = "${field.comment}")
#end
#if(${field.keyFlag})
@TableId(value="${field.name}", type= IdType.AUTO)
#else
@TableField("${field.name}")
#end
private ${field.propertyType} ${field.propertyName};
#end
#if(${entityColumnConstant})
#foreach($field in ${table.fields})
public static final String ${field.name.toUpperCase()} = "${field.name}";
#end
#end
#if(${activeRecord})
@Override
protected Serializable pkVal() {
#if(${keyPropertyName})
return this.${keyPropertyName};
#else
return this.id;
#end
}
#end
}

www.zhengqing520.com:3306 用戶名:hello 密碼:root


這里不多說(shuō),就是一些基礎(chǔ)信息


在這里動(dòng)態(tài)配置后端uri請(qǐng)求權(quán)限與前端按鈕權(quán)限

前后端分離,跨域解決,三方授權(quán)登錄,@Validated后端參數(shù)校驗(yàn),簡(jiǎn)單的redis緩存處理,shiro動(dòng)態(tài)權(quán)限配置,前端按鈕級(jí)別權(quán)限控制 等等,后端使用目前企業(yè)流行的Spring Boot+MyBatis-Plus技術(shù)棧,前端也是較為普遍 學(xué)習(xí)輕松的vue。對(duì)于全棧了解入門也是一個(gè)好的demo肖哥,在這一個(gè)月時(shí)間里,白天上班,晚上回家利用空閑時(shí)間來(lái)碼代碼,其中也是學(xué)到了不少東西,現(xiàn)在也分享出來(lái)給大家,希望能夠幫助到有需要的小伙伴們~覺(jué)得還可以的話,請(qǐng)給個(gè)?