scgo golang 框架
获取方式:
github.com
go get -u github.com/zsxm/scgo
clone
git clone https://github.com/zsxm/scgo.git
#使用方法和说明:
为了方便使用,执行速度,和开发效率,所有反射的功能都由生成的代码替代
代码生成:github.com/zsxm/scgo/tools/scgen/scgen.exe
代码生成工具包
生成工具使用方式:
实际项目目录结构,逗号后边的是目录说明
--projectDir
--------conf ,配置文件,配置db.xml,logger.xml这些文件名是固定的.文件内容示例去框架使用示例中找
--------logs ,生成的日志
--------init ,初始化action,执行action.go的init方法
--------static ,静态文件存放
--------template ,html模版存放
--------upload ,上传文件存放,可配置
--------main.go ,程序启动
--------source ,go源代码目录
----------------module1 ,模块1
-----------------------entity ,结构实体
------------------------------entity.go ,go文件
-----------------------action
-----------------------log
-----------------------service
----------------module2 ,模块2
-----------------------entity
-----------------------action
-----------------------log
-----------------------service
#框架使用示例在最下边
以下目录说明
projectDir:项目,source:go源码,module1:模块,entity:结构实体,结构实体目录需要按照一定格式编写
entity.go示例代码
import (
"github.com/zsxm/scgo/data"
)
//go:generate $GOPATH/src/github.com/zsxm/scgo/tools/scgen/scgen.exe -fileDir=$GOFILE -projectDir=study/app3 -moduleName=chatol
-goSource=source
//go:@Table value=users
type Message struct {
//go:@Column value=u_id
//go:@Identif
id data.String
//go:@Column value=u_name
name data.String
//go:@Column value=u_phone
phone data.String
//go:@Column value=u_age
age data.Integer
tt data.Integer
}
注解说明:
因为go不支持注解,所以都是以注释形式存在的自定义注解
固定格式//go:
开头
//go:@Table、//go:@Column、//go:@Identif
,分别是结构Message对应的表名,字段对应的列名,和主键字段,目前只支持这些。
未添加注解的字段是不会映射到数据表中,但是会自动封装数据进去,除了数据表映射功能。
注意:需要配置环境变量GOPATH
-projectDir
和-moduleName
是需要配置的项目目录和模块名称,其它两个不变
还需要一个.bat或.sh执行文件放到entity.go同一目录下
执行文件代码
@echo off
echo [INFO] run go generate.
cd %~dp0
call go generate
exit
执行该命令后,将会自动生成,action,log,service,和entity_impl.go等封装好的代码。
自动生成的代码后缀带_impl的文件内容是一搬不需要改动的,如果改动了,再去执行该命令将会覆盖掉自己写的代码,所以在其它文件中实现。
chttp:
*action映射
*请求数据绑定和响应数据封装
*上传文件的封装等web核心组件
chttplib:
*http模拟请求发送
*文件上传发送等
data:
*数据库、缓存操作封装
*对结构的数据转换,数据库操作核心功能
filter:
*过滤器
logger:
*日志输出
security:还未实现
*安全
wsdl:
*webservice wsdl
websocket:
*html5 websocket
tools:
*框架所有工具包
*代码生成包
*集成修改其它源码
session:
*session会话
funcmap
*模版使用函数
cjson:
*json和map互转
cxml:
*xml解析
框架使用 微信平台配置:https://github.com/zsxm/weixin
建目录 $GOPATH/src/golang.org/x/
git clone https://github.com/golang/net.git
angularjs,less,sass