01:[后台框架] 看配置文件就知道有什么功能了.

首先要先看序章才知道这里的配置文件是什么
https://www.jianshu.com/p/8e1028b82a51

再看一下项目结构图:


其实项目分成两部分,

  1. src_common源包, 是项目的核心内容, 光有这部分就可以写个Action类写接口供app调用了, 里面还包含操作数据库的组件.
  2. src_manage源包和web/resources文件夹后台框架的源文件.

接下来看一下web.xml里面的内容

m.system.listener.InitListener 系统的初始化监听类, 用来加载配置文件内容.

    <!-- 系统初始化监听 -->
    <listener>
        <listener-class>m.system.listener.InitListener</listener-class>
    </listener>
    <!--end 系统初始化监听 -->

m.system.filter.ActionFilter url过滤器, 系统会过滤所有请求

    <!-- url 过滤器  -->
    <!-- 执行过滤器 -->
    <filter>
        <filter-name>actionFilter</filter-name>
        <filter-class>m.system.filter.ActionFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>actionFilter</filter-name>
        <url-pattern>/*</url-pattern>
        <dispatcher>REQUEST</dispatcher>
        <dispatcher>FORWARD</dispatcher>
        <dispatcher>INCLUDE</dispatcher>
    </filter-mapping>
    <!--end url 过滤器 -->

url过滤器以后再讲.

配置文件


图片红框内的是src_common源包需要加载的配置文件:

1. src/config/mconfig.properties 功能性配置文件

#数据库模型包, 多个用逗号分开(,)
model_pack=manage.model
#秘密字段 ModelQueryList 查询用*时,过滤掉
secret_field=AdminLogin.password,AdminLogin.token
#静态资源加速配置 多个用(,号)分开  model的属性
static_field=ImageInfo.imgPath,ImageInfo.thumPath
#action包, 多个用逗号分开(,)   继承m.common.action 系统Action
action_pack=manage.action
#启动是需要初始化的类 继承m.system.SystemInitRun并实现run方法
init_class=manage.run.ModuleInitRun
#定时任务类 多个用&符号分割  格式 类(继承m.system.SystemTaskRun)|Quartz的cronSchedule  每天0点0分0秒执行: 秒0 分钟0 小时0 日期* 月* 星期? 年
#  例:m.system.task.SystemTask|0/2 * * * * ?&m.system.task.SystemTask|0/2 * * * * ?
task_class=
#操作日志类 实现m.common.model.LogModel 只能设置一个
log_class=manage.model.SystemLog
#系统信息类 实现m.common.model.SystemInfoModel 只能设置一个
systeminfo_class=manage.model.SystemInfo
#域名跳转实现类 多个用逗号分开(,) 实现m.system.url.RedirectUrl
domain_class=
#上传文件存放目录
file_path=uploadData/
#调试
debug=true
  • model_pack, secret_field, static_field 是表模型相关配置, 配置后系统可以初始化表信息, 模型类可以进行增删改查.
@TableMeta(name="os_admin_group_power",description="用户组权限表")
public class AdminGroupPower extends Model {
    @FieldMeta(name="name",type=FieldType.STRING,length=50,description="名称")
    private String name;
    @LinkTableMeta(name="admin_group_oid",table=AdminGroup.class,description="管理员组")
    private AdminGroup adminGroup;
    //....get,set 方法....
}
  • action_pack 是action的包路径配置, 包里的类继承m.common.action.Action类, 类里的方法就可以被外部访问了
@ActionMeta(name="manageDictionaryType",title="系统-数据字典")
public class DictionaryTypeAction extends ManageAction {    
    private DictionaryType model;

    @DocumentMeta(
        method=@DocumentMethodMeta(title="获取数据字典",description=""),
        params={@DocumentParamMeta(name="model.type",description="数据字典类型",type=FieldType.STRING,length=20,notnull=true)
        }
    )
    public JSONMessage getDict(){
        .....
    }
    .....
}

调用的url: http://ip:port/action/manageDictionaryType/getDict

  • 其他的暂时不讲了, 后面用到会详解

2. src/dbconfig.properties 数据库地址配置文件

#数据库配置
db_driver=com.mysql.jdbc.Driver
db_url=jdbc:mysql://127.0.0.1:3306/mdb?useSSL=false
db_username=root
db_password=root
db_init_connect=SET NAMES utf8mb4
db_max_connect=10

#数据库名称  空:不自动初始化数据库
table_schema=mdb

#主控服务地址
server_ip=
server_port=8128

数据库链接使用的是JDBC方式

  • 前四项没啥说的,
  • db_init_connect : 打开数据库链接后执行的sql.
  • db_max_connect : 数据库的最大链接说.

3. src/config/urlmarker.xml 访问配置信息

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <redirect><!-- 重定向 -->
        <url tag="/admin"><![CDATA[/action/manageAdminLogin/admin]]></url>
    </redirect>
    <enable><!-- 允许访问的路径 -->
        <tag><![CDATA[/resources/]]></tag>
    </enable>
    <referer><!-- 允许来路的域名 -->
        <tag><![CDATA[192.168.137.1]]></tag>
    </referer>
    <authorization><!-- 允许授权的前缀 -->
    </authorization>
</root>
  • <redirect> 重定向, 比如访问的后台地址(http://127.0.0.1/admin)
    实际访问的路径是http://127.0.0.1/action/manageAdminLogin/admin
    注, 如果访问/admin#A1101, 就会重定向到/action/manageAdminLogin/admin#A1101
  • <enable>, <referer>, <authorization> 是控制所有请求的访问, 默认配置了127.0.0.1
    4. src/config/dbinitsql.xml 表初始化语句
    表创建的时候会执行, 表结构更新不会执行.
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <sql tableName="os_admin_group"><![CDATA[
    INSERT INTO os_admin_group (oid, name, description, status) VALUES ('1', '管理员', '', '0');
    ]]></sql>
    ........
</root>

5. src/config/dbviewsql.xml 表视图语句
模型对应的视图查询, 不写在这个配置文件里, 也可以写在Model的注解里,在这里就不展示了.

可能讲这些并不能说明什么内容, 还是需要做个实例才能看到效果, 接下来做个简单的例子来试试.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容