配置文件

最后更新:2024-01-12 17:15:32 | 状态:未完成

配置文件通过以下几种方式:

  1. 最常用的是集成到spring配置文件中就可以(如anyline.log-sql:false),anyline-boot会加载spring配置文件
  2. 在启动类中通过ConfigTable.配置项=值
  3. 在运行过程中通过ConfigTable修改配置项,如果遇到ConfigTable中没有预先定义的变量可以ConfigTable.put(key,value).get(key)
  4. ThreadConfig针对当前线程或单个数据源设置参数
  5. 遇到极端情况需要添加配置文件anylie-config.xml


配置文件中的 key与ConfigTable中定义的变量是一一对应的,如
ConfigTable.IS_AUTO_SPLIT_ARRAY = false; 
对应anylie-config.xml配置文件的<property key="IS_AUTO_SPLIT_ARRAY ">false</property>
对应application.properties配置文件的anyline.auto-split-array=false

配置项有3个作用域:

  • 全局 
    配置文件和ConfigTable的默认作用域
  • 仅作用于当前线程  
    ThreadConfig config = ThreadConfig.instance()获取当前线程的配置对象。config初始值复制ConfigTable
    config.key = value 设置当前线程内的配置项
  • 仅作用于指定数据源
    ThreadConfig config = ThreadConfig.instance(datasource)获取当前线程针对datasource的配置对象。config初始值复制当前线程的config,如果当前线程中未配置,则复制ConfigTable
    config.key = value 设置当前线程内的配置项

ConfigTable也可以在运行过程中随时访问spring配置文件,可以用来替代@Value注解

如果项目中依赖了spring-boot-configuration-processor,集成开发环境会有key提示
如anyline.aliyun.oss.bucket=


anyline-mvc默认依赖了anyline-boot,anyline-boot中默认依赖了spring-boot-configuration-processor
通过情况下web项目需要依赖anyline-mvc,但有一些极精简的环境如果没有用到anyline-mvc还要自动提示配置文件需要添加anyline-boot依赖
这种情况一般就没必要添加anyline-boot了(会关联许多的jar包出来),有需要配置的话直接在启动类中通过ConfigTable配置就可以了。


以下是不常用到的情况:

参考每个模块下相应的配置文件示例
配置文件一般以configs作根节点
其下有多个config
在代码中可以根据config.key来确定调用哪个配置

<configs> 
    <config key="default">
	    <property key="KEY">VALUE</property>
	</config>
</configs>

anyline-nacos集成了nacos配置中心用来配置文件集中管理与实时同步,
需要在classpath下添加配置文件anyline-nacos.xml
在nacos上创建配置文件时,需要与配置类的CONFIG_NAME值保持一致,如PageNavi.CONFIG_NAME = "anyline-navi.xml"

<?xml version="1.0" encoding="UTF-8"?>
<configs>
	<config key="default">
		<!-- 服务器地址 -->
		<property key="ADDRESS">192.168.9.10</property>
		<!-- 端口 默认8848 -->
		<property key="PORT">8848</property>
		<!-- namespace 默认public -->
		<property key="NAMESPACE">public</property>
		<!-- group 默认 DEFAULT_GROUP -->
		<property key="GROUP">DEFAULT_GROUP</property>
		<!-- 是否自动扫描配置类 默认true -->
		<property key="AUTO_SCAN">true</property>
	</config>
</configs>
对于多个环境配置不同的情况 如生产环境与测试环境与开发环境
开发环境多变,生产与测试相对固定
为避免开发环境提交的配置误覆盖生产环境.需要在生产环境中创建一份以anyline-config-*.xml配置文件
配置文件在开发环境一般只有一个完整配置
在测试和生产环境会有其他的配置文件anyline-config-*.xml
系统加载配置文件时首先加载anyline-config.xml 后加载anyline-config-*.xml
如果有重复key,anyline-config.xml中的重复数据将会被覆盖.
是为了避免项目发布时,因修改生产环境配置文件失误造成的问题.
常见如多个境调用接口的IP不同,多个数据库中的主键值不一致

其中在核心配置文件anyline-config.xml中的RELOAD用来设置系统多长时间重新加载一次配置文件(包括所有配置文件)
如果没设置则会实时监听配置文件变化

最近更新 搜索 提交