文档章节

使用 Hasor 实现 模版化配置文件

哈库纳
 哈库纳
发布于 2016/10/06 13:37
字数 633
阅读 171
收藏 0

    Hasor 不光小巧还很精良,这一片文章我们来讲一讲 “模版化配置文件”。

    首先在了解模版化配置文件之前先看一下我们的实际开发中的问题。现在假设你有一个小团队,大家分别开发同一个项目的不同功能。通常情况下我们会为项目划分几个大模块,然后为每个模块建立一个自己的配置文件。或者干脆所有项目的配置都放到一个配置文件中。

    在这些配置信息中一般会包涵例如:文件上传路、数据库连接、远程接口服务器地址 这些配置,这些配置通常在不同的环境下有着不同的配置值,例如:日常、测试、预发、生产。

    而有些项目稍微改一下配置就回面部全非变成另外一个系统,这些配置也是跟随时机部署情况灵活改变的。

    如果你开发的是更大一点的网站,css、文件上传中心、图片服务器、等等都会独立出来。当你开发完应用程序,光是在生产环境替换这些配置信息就够你忙活一阵子了。更何况如果项目分了模块,要替换的配置文件还会更多。

    “模版化配置文件” 的提出是为了解决这个问题。

    下面我们以 数据库连接配置为例:

<config xmlns="http://project.hasor.net/hasor/schema/main">
    ...
    <jdbcSettings>
        <jdbcDriver>com.mysql.jdbc.Driver</jdbcDriver>
        <jdbcURL>jdbc:mysql://${jdbc.database_host}:3306/${jdbc.database_name}?useUnicode=true&amp;characterEncoding=utf-8</jdbcURL>
        <userName>${jdbc.user}</userName>
        <userPassword>${jdbc.password}</userPassword>
    </jdbcSettings>
    ...
</config>

    在上面这个配置中我们可以看到这样的结构“${xxxxx}” 。在 Hasor 的配置文件中,这段花括号括起来的表示的是环境变量名称。在上面这单代码中可以看到一共有 4 个环境变量配置。

${jdbc.database_host}
${jdbc.database_name}
${jdbc.user}
${jdbc.password}

    接下来我们在 classpath 目录下新建一个名为 “env.config” 的文本文件。然后把上面四个配置项保存到这里。Hasor 在启动的时候会加载 “env.config” 的配置信息,然后 Hasor 会使用这个配置信息替换配置文件中的相应配置信息。

jdbc.database_host = ...
jdbc.database_name = ...
jdbc.user          = ...
jdbc.password      = ...

    env.config 文件除了放置到 classpath 目录下还可以放到 WORK_HOME 环境变量表示的目录下也可以。如果放到 WORK_HOME 下面,您的应用程序包都不需要有任何修改了。

© 著作权归作者所有

共有 人打赏支持
哈库纳

哈库纳

粉丝 963
博文 84
码字总数 151810
作品 4
杭州
后端工程师
私信 提问
轻量级开发框架--Hasor

Hasor 是一款基于 Java 语言的应用程序开发框架,它的核心设计目标是提供一个简单、切必要的环境给开发者。开发者可以在此基础上,通过 Hasor 强有力的粘合机制,构建出更加完善的应用场景。...

哈库纳
2013/07/09
13.5K
118
Hasor Group/hasor

Hasor    面向生产环境而设计的 Java 应用开发框架。它的核心设计目标是提供一个简单、且必要的环境给开发者。开发者可以在此基础上快速进行软件开发。    区别于其它框架的是 Hasor 有着...

Hasor Group
2013/12/10
0
0
Hasor 2.2.0 正式发布,完美与Spring整合

===== Hasor-Core v2.2.0 (2016-2-23) 新增: 01.增加Event事件注册插件,简化事件的注册机制。 02.Settings接口增加 addSetting方法和clearSetting方法用来增加和删除配置项。 03.新增Sprin...

哈库纳
2016/02/25
1K
11
Hasor 同 Spring OSGi 的比较及设计思想

这篇是承接《轻量级 Java 开发框架 设计》系列Blog文的后续文章,本文将通过设计思想,实现方式上对比 Hasor Spring OSGi 三者。 在开启本文之前我想用最简短的一段话介绍一下 Hasor 。 Haso...

哈库纳
2013/12/27
0
27
使用你喜欢的模版引擎渲染页面

目前 Web 网站的开发 基本都用到了模版引擎,使用 Hasor 开发 web 可以使用你喜欢的任何模版解析引擎。在开始本文之前,先推荐您三篇相关文章: https://my.oschina.net/u/1166271/blog/7530...

哈库纳
2016/10/06
551
0

没有更多内容

加载失败,请刷新页面

加载更多

0029-如何实现CDH元数据库MySQL的主备

1.文档编写目的 MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的扩展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负...

Hadoop实操
28分钟前
3
0
阿里如何做到百万量级硬件故障自愈?

摘要: 随着阿里大数据产品业务的增长,服务器数量不断增多,IT运维压力也成比例增大。各种软、硬件故障而造成的业务中断,成为稳定性影响的重要因素之一。本文详细解读阿里如何实现硬件故障...

阿里云官方博客
30分钟前
6
0
配置resttemplate

<bean id="httpClientBuilder" class="org.apache.http.impl.client.HttpClientBuilder"factory-method="create"><property name="connectionManager"><bean class="org.apache.ht......

1713716445
33分钟前
2
0
Intersection of Two Linked Lists(leetcode160)

Write a program to find the node at which the intersection of two singly linked lists begins. For example, the following two linked lists: A: a1 → a2 ......

woshixin
39分钟前
3
0
Jrebel最新激活破解方式(持续更新)

https://blog.csdn.net/xingbaozhen1210/article/details/81093041

glen_xu
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部