01 属性文件|env.properties
#Memcached 服务器地址
memcached.address=127.0.0.1:11211
02 spring-base.xml 摘要
<context:property-placeholder location="classpath:env.properties" />
03 SpringUtil.java
package com.xxx.utils;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
@Component
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext = null;
@Override
public void setApplicationContext(ApplicationContext appContext) throws BeansException {
if (SpringUtil.applicationContext == null) {
SpringUtil.applicationContext = appContext;
}
System.out.println("======ApplictionContext配置成功,在普通类可以用SpringUtils.getApplicationContext()获取上下文对象=====");
}
//获取applicationContext
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
//通过name获取 Bean.
public static Object getBean(String name){
return getApplicationContext().getBean(name);
}
//通过class获取Bean.
public static <T> T getBean(Class<T> clazz){
return getApplicationContext().getBean(clazz);
}
//通过name,以及Clazz返回指定的Bean
public static <T> T getBean(String name,Class<T> clazz){
return getApplicationContext().getBean(name, clazz);
}
}
04 属性读取类|Env.java
package com.xxx.utils;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Env {
private static final Logger log = LoggerFactory.getLogger(Env.class);
private static Properties prop = getProperties();
public static String get(String key) {
return prop.getProperty(key);
}
public static Properties getProperties() {
try {
return (Properties) SpringUtil.getBean("env");
} catch (Exception e) {
Properties properties = new Properties();
try {
File file = new File(Env.class.getClassLoader().getResource("env.properties").getPath());
InputStream inputStream = new FileInputStream(file);
properties.load(inputStream);
inputStream.close();
} catch (IOException e1) {
e1.printStackTrace();
}
log.info("加载配置文件:");
for (Object key : properties.keySet()) {
log.info("key:{}\tvalue:{}", key, properties.get(key));
}
log.info("加载配置文件完毕。");
return properties;
}
}
public static void reLoad() {
log.info("重新加载配置文件");
prop = getProperties();
}
}
05 使用|MemcacheManager.java
public class MemcacheManager {
private static final Logger log = LoggerFactory.getLogger(MemcacheManager.class);
static MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses(Env.get("memcached.address")));
...
分享到:
相关推荐
在`CodeTest`文件中,可能包含了实现这些方法的具体代码和测试示例,可以进一步学习和理解如何在实际项目中应用这个封装的XML读取类。 总之,C#中的XML处理是一个重要的话题,合理封装可以帮助我们更高效地管理XML...
在实际项目中,这样的封装可以使代码更加简洁,易于维护。例如,`QRCode.java`可以提供如下方法: ```java public class QRCode { public static void generate(String content, String outputPath) { // 生成...
通过C#封装Tesseract OCR,开发者可以在C#项目中直接调用已封装好的库,无需直接操作Tesseract的原始C++ API,简化了开发流程。 1. **C# 封装 Tesseract OCR** 在这个项目中,开发者已经将Tesseract的接口用C#进行...
这段代码首先创建了一个`ShellFile`对象,然后通过`Properties`属性获取文件的属性集合,最后读取了文件的标题和修改时间。这种方式既直观又易于理解,比直接操作Win32 API简洁得多。 此外,Microsoft.WindowsAPI...
本封装库对图象读取,特效,显示进行封装 功能有:对gif,pcx,tga,jpg等图像格式的读取,进行亮度,对比度,图像旋转,浮雕,颜色反转,锐化,平滑,马赛克处理. 包括全部源代码. 编译这个DEMO需要较新的SDK,如果没有可以下载...
《C++项目开发实战入门Code》是一份专为初学者设计的教学资料,旨在帮助学习者通过实际编程项目,快速掌握C++语言的核心概念和编程技巧。这个压缩包中包含了一系列的代码示例和实践项目,涵盖了C++的基础到进阶应用...
总结来说,"zbarcode php二维码识别类库(window)"是一个适用于Windows环境下的PHP二维码识别解决方案,结合了zbarCode.dll、ImageMagick和zbar库,使得开发者能够方便地在PHP项目中实现二维码的读取和解析。...
4. **DLL封装**:将VB编写的Code128转换功能封装为DLL(动态链接库),可以方便地在多个项目之间复用代码。创建DLL时,需要定义公共接口,确保其他应用程序能够调用这些功能。 5. **自动识别最优Code128Auto**:在...
- 在C++中,可以利用类和对象来封装CODE128编码逻辑,提高代码的可维护性和复用性。 - Visual C++(VC)提供了丰富的Windows API和MFC库,可以方便地生成窗口控件并显示条码图像,也可以调用第三方库如Zint等进行...
在压缩包中的`codefans.net`文件中,可能包含了多个`.pas`源码文件,这些文件展示了如何在实际项目中应用封装技术。通过对这些示例的分析,我们可以深入理解Delphi中封装的实现方式以及其在实际开发中的应用。 7. ...
在Android开发中,扫码功能是常见的需求之一,用于读取二维码或条形码中的信息。本项目"Android扫码封装"正是针对这一需求进行的优化和整合,提供了完整的解决方案。它支持闪光灯开关、扫码结束声音播放以及扫描线的...
在软件开发中,MODEL类通常代表应用程序中的数据模型,用于封装和管理数据逻辑。使用CodeModel,开发者可以避免手动编写重复的MODEL类代码,提高开发效率,减少错误,并保持代码的一致性。 该工具的核心功能是根据...
在“java实战项目code部分(15个项目)”这个压缩包中,我们很可能会找到一系列针对不同场景的Java项目源代码,每个项目都代表着一个特定的知识点和技能。以下是基于这些项目的可能知识点和相关技术的详细解析: 1....
在IT行业中,自动码识别(Automatic Code Recognition,ACR)是一项关键的技术,它通常用于读取和解析各种编码形式的数据,如条形码、二维码等。C#是一种广泛使用的编程语言,尤其在Windows应用程序和.NET框架开发中...
在实际应用中,为了处理异常和提高代码的可维护性,通常会将上述步骤封装到一个方法或类中。例如,可以创建一个`readUrl`方法,接受URL字符串作为参数,返回服务器响应的文本内容。 最后,需要注意的是,Java 7引入...
### C#将浏览过的产品信息保存在Cookie中的实现方法 #### 概述 在ASP.NET应用开发中,尤其是在电子商务网站的构建过程中,有效地...需要注意的是,在实际项目中还需要考虑安全性问题,例如对敏感信息进行加密等操作。
在项目部分,AI-CODE坦克机器人涉及了C++的输入/输出(I/O)操作,这可能包括读取用户输入、显示程序状态等。同时,书中可能涵盖了文件操作,比如保存和读取游戏进度、记录坦克的行动历史等。C++标准库中的iostream...
- 将`changeCode`类添加到项目中后,可以在读取或写入文件,或处理网络数据时调用其方法,以防止出现中文乱码。 通过理解这些原理和方法,开发者可以更有效地处理中文乱码问题,提高软件的用户体验。"changeCode...
最后,"DFRobot_INA219-master"可能是一个开源库或项目的名称,DFRobot是一家知名的开源硬件供应商,他们可能提供了封装好的INA219库,方便开发者快速集成到自己的项目中。"master"通常指的是Git仓库的主分支,表示...
- 将这个Demo集成到自己的项目中,首先需要添加对应的库依赖,这通常在build.gradle文件中完成。 - 调用提供的API初始化扫描器,设置扫描回调以处理扫描结果。 - 在UI布局中创建一个SurfaceView或TextureView来...