我们在开发Java程序的时候,很多常量信息都存在配置文件中,比如数据库连接信息、ip黑名单,事件的超时时间等等。当需要该这些配置的值时都需要重新启动进程,改动的配置才会生效,有时候线上的应用不能容忍这种停服。
还好,Apache Common Configuration给我们提供了可以检测文件修改后配置可短时间生效的功能。具体用法如下:
package com.netease.test.commons; import org.apache.commons.configuration.ConfigurationException; import org.apache.commons.configuration.PropertiesConfiguration; import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy; import org.apache.log4j.Logger; /** * User: hzwangxx * Date: 14-3-13 * Time: 17:20 */ public class SystemConfig { private static Logger logger = Logger.getLogger(SystemConfig.class); private static PropertiesConfiguration config; static { try { //实例化一个PropertiesConfiguration config = new PropertiesConfiguration("/Users/hzwangxx/IdeaProjects/app-test/src/main/resources/conf.properties"); //设置reload策略,这里用当文件被修改之后reload(默认5s中检测一次) config.setReloadingStrategy(new FileChangedReloadingStrategy()); } catch (ConfigurationException e) { logger.error("init static block error. ", e); } } public static synchronized String getProperty(String key) { return (String) config.getProperty(key); } public static void main(String[] args) throws InterruptedException { for (;;) { System.out.println(SystemConfig.getProperty("key")); Thread.sleep(2000); } } } /* output: value value value 2014-03-13 17:54:37,251 12007 [main] INFO - Reloading configuration. URL is file:/Users/apple/IdeaProjects/app-test/src/main/resources/conf.properties updateValue updateValue */
这个比较实用,赞一个,牛刀小试了一把。
本文来源于:http://www.cnblogs.com/nexiyi/p/how_to_reload_properties.html
目前项目中用到的配置类请见附件,经验证,修改配置properties信息后,无须重启服务,调用类方法获取就可以得到最新的值
相关推荐
> /path/to/logfile.pid`将Java进程的PID(进程ID)写入到指定的日志文件,这样我们就可以在需要时找到并管理这个进程。 7. 最后的`tail -f`命令用于实时查看应用的日志输出,但这不是必需的,可以根据实际需求决定...
除了`httpd.conf`,Apache还使用`Includes`指令引入其他配置文件,如`extra/httpd-vhosts.conf`(虚拟主机配置)和`sites-available`目录下的站点配置文件。这样可以保持主配置文件的整洁,并方便管理。 **5. 启动...
在实际应用中,首先需要编译源代码文件(如`.c`或`.java`),然后在Supervisord的配置文件中添加相应的进程配置,指定可执行文件路径、工作目录、环境变量等。配置完成后,通过`supervisorctl reload`命令使配置生效...
cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。 cron的配置文件称为“crontab”,是“cron table”的简写。 cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。 ...
在Linux系统,特别是CentOS 7这样的服务器环境中,运行Java应用程序通常涉及到打包成JAR文件的程序。本文将深入探讨如何在CentOS 7中创建并执行Java的JAR启动脚本,以及如何配置该脚本使其能在系统开机时自动运行。 ...
- **全局块**:这是配置文件的起点,包含服务器的基本设置,如工作进程数、错误日志位置等。 - **events块**:定义Nginx如何处理连接,如最大连接数、多路复用等。 - **http块**:在此块中,你可以定义HTTP服务的...
配置完成后,启动Nginx,通过`nginx -t`测试配置文件的正确性,然后用`nginx -s reload`重新加载配置。 这些组件的自动化安装通常涉及编写shell脚本,如`init.conf`,它会依次执行各个组件的安装、配置和启动任务,...
在源码中,可以看到使用`Apollo.ConfigService.init()`方法来初始化配置服务,这个方法会从指定的配置文件(如`bootstrap.properties`)中读取`metaServer`地址。 2. **获取配置** 客户端提供了`ApolloConfig`类,...
- `nginx -s reload`: 改变配置文件时重新加载 Nginx 工作进程 - `nginx -s reopen`: 重新打开日志文件 **4. 启动和关闭** - **启动 Nginx**: 通过双击 `nginx.exe` 启动 - **关闭 Nginx**: 使用任务管理器结束 `...
3. 启动Java进程:通过`exec`命令启动Java虚拟机,传递`Bootstrap`类和相应的参数,如`start`命令会使用`java org.apache.catalina.startup.Bootstrap start`来启动Tomcat服务。 4. 服务运行:`Bootstrap`类会加载...
- `vi /etc/my.cnf`:编辑配置文件。 - `service mysql restart`:重启MySQL服务。 5. **Xshell使用**: - 通过rz命令上传文件到Linux服务器。 这份资料对于初学者来说非常实用,涵盖了IT基础操作的关键点,...
例如,配置文件中常见的指令有: - `worker_processes`: 设置Nginx工作进程的数量,影响并发处理能力。 - `error_log`: 定义错误日志文件的位置和级别。 - `pid`: 存储主进程ID的文件路径。 - `listen`: 服务器监听...
这个工具包包含了必要的可执行文件和配置文件,用于将Java应用程序转换为Windows服务。解压这个zip文件后,通常会得到如`wrapper.exe`这样的主程序,以及一些配置文件,如`wrapper.conf`,用于定义服务的行为和Java...
关键的配置文件包括fastcgi.conf、proxy_conf.conf、reload.sh、testConfig.sh和mime.types,它们分别用于Nginx到应用服务器的代理配置、配置文件检查、Nginx重启、配置文件修改生效以及定义可下载文件类型。...
`显示帮助,`./nginx`启动服务器,`./nginx -c /path/to/nginx.conf`指定配置文件启动,`nginx -s reload`或`kill -HUP 进程PID>`用于平滑重载配置。 在配置实践中,Nginx的灵活性体现在其模块化设计。它可以根据...
2. **修改配置文件** 对于`/opt/tomcat/bin/tomcat`文件,进行以下修改: ```bash APP_NAME="tomcat" APP_LONG_NAME="Tomcat Application Server" WRAPPER_CMD="./wrapper" WRAPPER_CONF="../conf/wrapper....
- 打开Nginx配置文件`/usr/local/nginx/conf/nginx.conf`。 - 在`http`块内添加一个`server`块,用于定义如何处理对Tomcat的请求: ```nginx server { listen 80; server_name localhost; location / { ...
2. **设置项目结构:** 分离主进程和渲染进程的代码,配置相应的入口文件。 3. **配置React:** 安装`create-react-app`或手动配置Babel和Webpack,确保ES6语法支持。 4. **热更新:** 可能包含如`react-hot-loader`...
- 修改`conf/server.xml`配置文件,配置端口号、上下文路径、虚拟主机等。 - 启动和停止Tomcat服务,通常通过`bin/startup.sh`或`bin/shutdown.sh`脚本。 2. **部署Web应用**: - 将WAR文件放入`webapps`目录下...