1)加载全局配置文件类
package com.magnus.core.servlet;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.springside.modules.utils.SystemGlobals;
/**
* 主要用于加载全局配置文件的类
*
*
*/
public class ConfigServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private final static Logger log = Logger.getLogger(ConfigServlet.class);
/**
* Constructor of the object.
*/
public ConfigServlet() {
super();
}
/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* Initialization of the servlet. <br>
*
* @throws ServletException
* if an error occure
*/
public void init() throws ServletException {
try {
// ConfigConstant.initConfigConstant(getServletContext().getRealPath("/"));
load();
log.info("Init config.......ok");
log.info(SystemGlobals.dump());
} catch (Exception e) {
log.error(e);
throw new ServletException("Init config Fail:" + e.getMessage());
}
String filePath = SystemGlobals.getValue("filepath");
// 其他必要操作。。。
}
public void doPost(HttpServletRequest request, HttpServletResponse response) {
try {
load();
log.info("Reload config.......ok");
log.info(SystemGlobals.dump());
// 清空缓存
WebApplicationContext webApplicationContext = WebApplicationContextUtils
.getRequiredWebApplicationContext(getServletContext());
PrintWriter out = response.getWriter();
out.print("{success:true}");
out.flush();
out.close();
} catch (Exception e) {
log.error("reload config Fail:" + e.getMessage());
}
}
public void doGet(HttpServletRequest request, HttpServletResponse response) {
doPost(request, response);
}
private void load() throws IOException {
String configFile = this.getServletConfig().getInitParameter("configFile");
SystemGlobals.loadConfig(this.getServletContext().getRealPath(configFile));
}
}
2) 提供全局配置文件访问入口
package org.springside.modules.utils;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import org.apache.log4j.Logger;
/**
* 单件,提供全局配置文件访问入口
*/
public class SystemGlobals {
private final static Logger log = Logger.getLogger(SystemGlobals.class);
private static SystemGlobals globals = new SystemGlobals();
private Properties config = new Properties();
private SystemGlobals(){}
/**
* 静态加载配置文件
* @param appPath 文件路径
* @throws IOException
*/
public static void loadConfig(String appPath) throws IOException
{
globals = new SystemGlobals();
FileInputStream input = new FileInputStream(appPath);
globals.config.load(input);
input.close();
}
/**
* 取得与key值相对应的字符串value
* @param key
* @return 字符串value
*/
public static String getValue(String key){
return globals.config.getProperty(key);
}
/**
* 取得与key值相对应的int类型的value
* @param key
* @return int类型的值
*/
public static int getIntValue(String key){
return Integer.parseInt(globals.config.getProperty(key).trim());
}
public static String dump(){
return globals.config.toString();
}
}
相关推荐
在Java编程中,加载配置文件是一项常见的任务,它允许我们动态地设置应用的参数和环境,而无需修改代码。配置文件通常以.properties或.xml格式存储,包含键值对或者结构化数据,使得程序可以根据不同环境或者用户...
首先,我们需要加载配置文件到`Properties`对象中,然后可以通过键来获取值。 ```java public class ConfigReader { private static Properties props = new Properties(); static { try { props.load(new ...
1. 加载配置文件:通过`Properties.load(InputStream)`方法加载文件,通常在类路径下查找文件。 2. 获取属性值:使用`Properties.getProperty(String key)`方法获取特定键对应的值。 3. 遍历所有属性:通过迭代`...
例如,`java.io.FileInputStream`可以用来打开文件,然后`java.util.Properties`类可以加载并解析配置文件。以下是一个简单的示例: ```java Properties props = new Properties(); FileInputStream fis = new ...
实现了实体类和配置文件的关系映射、自动加载、自动保存,基于ORM、持久化的思想,使用Java的注解、反射、范型等特性实现。 依赖jtk_util_0.1.jar,地址:http://download.csdn.net/detail/u010475284/7221887
1. 加载Properties文件:使用`Properties`类的`load()`方法,从输入流中加载配置文件。 2. 读取配置:通过调用`Properties`类的`getProperty()`方法,根据键获取值。 3. 修改配置:使用`setProperty()`方法设置新的...
properties文件获取工具类:静态加载properties配置文件,有根据key获取值的方法
`SftpUtil.java`文件可能包含一个封装了这些步骤的工具类,方便在项目中复用。一个简单的`SftpUtil`工具类示例如下: ```java import com.jcraft.jsch.ChannelSftp; import com.jcraft.jsch.JSch; import ...
本篇文章将深入探讨如何在Java中实现一个用于处理HTTPS请求的工具类。 首先,要实现HTTPS请求,我们需要导入Java的`java.net`和`javax.net.ssl`包,这两个包提供了处理网络连接和SSL/TLS安全协议的类。以下是一些...
在这个示例中,我们首先创建一个`Properties`对象,然后通过`getResourceAsStream()`或`FileInputStream`加载配置文件。`getProperty()`方法用于获取配置文件中的特定属性。请注意,`getResourceAsStream()`通常用于...
在Spring框架中,动态加载配置文件是一项重要的功能,它允许我们在程序运行时改变或更新配置,而无需重启应用。这在开发和生产环境中都具有很高的实用价值,尤其是在配置需要频繁调整或者希望实现热更新的场景下。...
java连接SqlServer完整代码,工具类,jdbc JDBC工具类的构建 1.资源释放 见https://mp.csdn.net/postedit/86577443 2.驱动防二次注册 ``` Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //...
本文将深入探讨"springboot+java类热加载"这一主题,包括其核心概念、实现方式以及相关技术。 **热加载(Hot Loading)**是开发过程中的一个重要功能,它允许开发者在不重启应用的情况下更新代码,提高开发效率。在...
自己开发一个工具类,为第三方应用提供调用接口,但是打包后测试过程中,发现了一个问题就是在用@Value获取配置文件内容的时候,无法获取我们的配置信息,也无法加载我们配置的默认值!具体配置如下: @Value("${...
Java Office转PDF工具类是Java开发中用于将Office文档转换为PDF格式的一种解决方案。在Java环境中,Aspose是一个流行的库,提供了丰富的API来处理各种办公文档格式,包括Word、Excel、PowerPoint等,并且能够方便地...
这个"读取properties文件工具类"是为了简化程序中对`.properties`文件的读取操作而设计的。通过这样的工具类,开发者可以方便地加载和获取配置文件中的属性值,避免重复编写相同的代码。下面我们将详细探讨`...
Apache Commons Configuration支持动态加载配置文件,这意味着当配置文件发生改变时,程序无需重启就能感知到这些变化。这主要通过监听配置文件的变化来实现。例如,可以使用`FileChangedReloadingStrategy`类监听...
在Java编程中,工具类(Util)是程序员经常会用到的辅助类库,它们提供了许多实用功能,简化了代码编写。以下将详细讲解标题和描述中提到的几个关键工具类及其封装方法: 1. **DateUtil**: Java中的日期时间处理在...
如`BeanUtils`类用于Bean对象之间的属性复制,`ClassPathXmlApplicationContext`用于加载和管理Spring配置文件,还有`StringUtils`等Apache Commons Lang库中的工具类,增强了字符串操作的能力。 除了数据库和...