- 浏览: 138093 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
xiangen11111:
microsoft sqlserver2005 java驱动包 sqljdbc.jar -
liujianshiwo:
--第一步建立一个函数
CREATE OR REPLACE F ...
获取汉字拼音首字母 -
guoyangjie:
怎么是个jar包啊,能不能贴出源码来
获取汉字拼音首字母 -
liujianshiwo:
microsoft sqlserver2005 java驱动包 sqljdbc.jar -
liujianshiwo:
microsoft sqlserver2005 java驱动包 sqljdbc.jar
这个类要在启动程序时候调用一下
package com.sinitek.sirm.common.spring;
import com.sinitek.base.starter.IStarter;
import com.sinitek.sirm.common.utils.URLUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.AbstractXmlApplicationContext;
import org.springframework.core.io.*;
import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
* File Desc:
* Product Name: SIRM
* Module Name: BaseDase
* Author: 刘建
* History: 11-6-2 created by 刘建
*/
public class SpringContextStarter extends AbstractXmlApplicationContext implements IStarter {
private ApplicationContext appCtxt = null;
private Resource[] configResources;
public SpringContextStarter() {
}
public SpringContextStarter(Resource[] resources) {
super(null);
this.configResources = resources;
refresh();
}
protected Resource[] getConfigResources() {
return this.configResources;
}
public void start(Properties properties) throws Exception {
// 资源存放地
String _location = properties.getProperty("location");
int _len = _location.length();
try {
List _resources = new ArrayList();
ClassLoader _loader = Thread.currentThread().getContextClassLoader();
for (Enumeration _enum = _loader.getResources(_location); _enum.hasMoreElements();) {
URL _url = (URL) _enum.nextElement();
String _protocol = _url.getProtocol();
String _externalForm = URLUtils.toExternalForm(_url);
String _path = URLUtils.getPath(_url);
if (_protocol.equals("jar")) {
String _root = _location + "/";
int i = _path.indexOf('!');
String _prefix = _path.substring(0, i + 1);
ZipFile _file = new ZipFile(i >= 0 ? _path.substring(6, i) : _path);
for (Enumeration _enumeration = _file.entries(); _enumeration.hasMoreElements();) {
ZipEntry _entry = (ZipEntry) _enumeration.nextElement();
if (!_entry.isDirectory()) {
String _name = _entry.getName();
if (_name.startsWith(_root)) {
if (_name.endsWith(".xml")) {
_resources.add(new UrlResource(_externalForm + _name.substring(_len)));
}
}
}
}
} else if (_protocol.equals("file")) {
File[] _files = new File(_url.toURI()).listFiles();
for (int i = 0; i < _files.length; i++) {
File _file = _files[i];
if (!_file.isDirectory()) {
_resources.add(new FileSystemResource(_file));
}
}
}
}
appCtxt = new SpringContextStarter((Resource[]) _resources.toArray(new Resource[0]));
SpringFactory.setAppCtxt(appCtxt);
} catch (IOException e) {
throw new RuntimeException(e);
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
}
public void destroy() {
((AbstractApplicationContext) appCtxt).destroy();
}
}
工厂类:
package com.sinitek.sirm.common.spring;
import org.springframework.context.ApplicationContext;
import java.util.ArrayList;
import java.util.List;
/**
* File Desc:
* Product Name: SIRM
* Module Name: BaseDase
* Author: 刘建
* History: 11-6-2 created by 刘建
*/
public class SpringFactory {
private static ApplicationContext appCtxt = null;
public static <T> T getBean(Class<T> clazz) {
T _result = null;
if (appCtxt != null) {
String[] _names = appCtxt.getBeanNamesForType(clazz);
if (_names != null && _names.length > 0) {
_result = (T) appCtxt.getBean(_names[0]);
}
}
return _result;
}
public static <T> T getBean(String beanName, Class<T> clazz) {
return appCtxt != null ? (T) appCtxt.getBean(beanName, clazz) : null;
}
public static Object getBean(String beanName) {
return appCtxt != null ? appCtxt.getBean(beanName) : null;
}
public static <T> T[] getBeans(Class<T> clazz) {
T[] _result = null;
String[] _names = appCtxt.getBeanNamesForType(clazz);
if (_names != null) {
List<T> _list = new ArrayList<T>();
for (String _name : _names) {
_list.add(getBean(_name, clazz));
}
_result = (T[]) _list.toArray();
}
return _result;
}
public static void setAppCtxt(ApplicationContext appCtxt) {
SpringFactory.appCtxt = appCtxt;
}
}
发表评论
-
quartz
2016-02-19 13:59 687在spring 配置文件中增加下面内容: spring版本 ... -
java http请求 返回结果是json ,转成对象使用
2012-10-15 21:52 6309URLConnection connection = nul ... -
ORACLE 循环语句 LOOP WHILE FOR
2011-07-12 09:52 2169loop循环:create or replace proced ... -
kettle 4.1 下载地址
2011-07-07 23:51 1102http://sourceforge.net/projects ... -
Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运算函数,其他函数)[转]
2011-06-14 14:30 909Oracle 函数大全(字符串函数,数学函数,日期函数,逻辑运 ... -
Spring 纯jdbc JdbcDaoSupport 事务处理
2011-06-03 14:46 2133PlatformTransactionMana ... -
struts2 获取上下文对象 关联spring
2011-06-02 15:25 1015ApplicationContext applicationC ... -
kettle 4.1 下载地址
2011-05-17 09:48 902下载地址:http://sourceforge.net/pro ... -
向一个表中插入一个序列
2011-05-09 20:02 786update sirm_enum set objid = ro ... -
orcale 导入数据
2011-05-06 09:12 705现导入表结构,不导入数据 imp user/password@ ... -
获取汉字拼音首字母
2011-04-08 15:57 1600获取汉字拼音首字母 获取汉字拼音首字母 很好用....觉 ... -
microsoft sqlserver2005 java驱动包 sqljdbc.jar
2011-03-05 21:02 2823ms sql2005 java驱动包 sqljdbc.jar ... -
IDEA 9.0.2整合Tomcat开发
2011-02-13 16:26 881IDEA 9.0.2整合Tomcat开发 IDEA 9 ... -
java split 用法说明详解
2011-02-13 15:03 11441. 如字符串:http://www.vv ... -
IntelliJ IDEA常用设置
2011-02-13 14:20 1266IntelliJ IDEA是一款非常优 ... -
java jdk6.0 jdk-6u18-windows-i586.exe
2011-01-27 22:13 1451jdk-6u18-windows-i586.exe -
proc文件系统
2010-12-15 13:57 903/proc文件系统 /proc文件 ... -
linux命令
2010-12-15 12:17 790# ls ls -a 列出当前目录 ... -
查看linux内存使用情况
2010-12-15 10:27 915在Linux下查看内存我们 ... -
java 连接ssh2服务器,运行命令,ftp上传文件 返回命令信息
2010-12-09 14:11 3692需要jdk6 , jsch-0.1.44.j ...
相关推荐
在Spring MVC项目中,加载jar包中的Spring配置文件是一个常见的需求,特别是在进行SSM(Spring、Spring MVC、MyBatis)整合时。SSM框架的整合通常涉及到多个配置文件的组织和管理,其中一部分配置可能会被打包到独立...
接下来,一旦检测到Spring配置文件发生变化,我们需要重新加载配置文件。这可以通过Spring的`ApplicationContext`的`refresh()`方法来实现。`refresh()`会重新初始化Bean工厂,读取新的配置信息,并更新所有Bean的...
综上所述,"加载jar包中的spring配置文件"是一个关键的Java开发实践,它涉及到Spring框架的配置管理、类路径的概念,以及如何在多模块项目中有效地组织和使用配置。正确理解和使用这些技术,能帮助开发者构建可扩展...
在Java中,我们可以利用开源项目如EncFS或TrueCrypt来实现TE网络。这些工具能够创建一个虚拟文件系统,其中的文件在存储时自动加密,在读取时自动解密,对应用程序透明。 为了集成TE网络到Spring应用中,我们需要在...
Spring框架提供了灵活的方式来加载位于classpath中的XML配置文件,这对于项目的模块化和可维护性至关重要。本文将详细分析Spring通过classpath加载配置文件的不同情形,并提供解决加载过程中可能遇到的问题的方法。 ...
在Spring框架中,加载多个配置文件是常见的需求,特别是在大型项目中,为了保持代码的整洁和模块化,通常会将不同的配置分散到多个文件中。本文将深入探讨如何在Spring中实现这一功能。 首先,Spring提供了多种方式...
本文将详细介绍Spring框架中如何加载多个配置文件的不同方式,并提供具体的示例代码。 #### 一、使用数组方式加载多个配置文件 第一种方式是通过定义一个包含所有配置文件名的数组来加载多个配置文件。这种方式...
在 Spring 框架中,通过合理地拆分和加载多个配置文件,不仅可以显著提升应用程序的可读性和可维护性,还能更好地适应大型项目的团队协作模式。掌握这些技巧,将帮助开发者构建更加健壮、灵活的企业级应用。
在大型项目中,Struts和Spring的配置文件是系统的核心,它们定义了各个组件如何协同工作。下面将详细讲解这两个框架的主要配置元素和它们在大型项目中的应用。 首先,Struts的配置文件通常命名为`struts-config.xml...
Spring框架是Java开发中广泛应用的轻量级框架,它的...Spring的这些配置文件使得我们可以模块化、解耦合地管理应用组件,提高了代码的可维护性和复用性。理解并熟练运用这些配置,是成为专业Java开发人员的必备技能。
- Spring Boot提供了`@ConfigurationProperties`注解,可以将配置文件中的键值对映射到Java对象的属性上,增强代码的可读性。 - 创建一个类,用`@Component`或`@Configuration`注解,并使用`@...
这个简单的例子展示了如何在Java中读取配置文件的基本步骤。实际应用中,可能还需要处理异常,验证属性值,或者在找不到配置文件时提供默认值。此外,现代Java项目倾向于使用更高级的配置管理框架,如Apache Commons...
本文将深入探讨Spring配置文件`applicationContext.xml`中的关键知识点。 首先,我们来理解`applicationContext.xml`的结构和作用。这个文件是Spring IoC容器的基础,它定义了一系列Bean的定义,这些Bean就是Spring...
本文将详细介绍如何让Spring自动加载自定义的`.properties`配置文件,并在代码中获取这些配置信息。 首先,我们需要创建一个`.properties`文件。这个文件通常命名为`application.properties`或根据项目需求自定义,...
本篇将详细讲解如何在Spring 3.0的配置文件中加载Properties文件,以便在运行时动态获取和使用这些配置。 首先,我们需要一个Properties文件,例如`application.properties`,它通常放在项目的类路径根目录下。这个...
在Java开发中,Spring框架是应用最广泛的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)容器。...在实际开发中,应根据项目需求选择合适的方式,确保配置文件能被正确地加载和解析。
在Spring配置文件中,最重要的元素是`<bean>`。`<bean>`元素定义了一个Spring管理的对象,也称为bean。它包含几个关键属性,如`id`(唯一标识符)、`class`(类路径,用于实例化对象)和`name`(可选的别名)。例如...
在Java编程中,加载配置文件是一项常见的任务,它允许我们动态地设置应用的参数和环境,而无需修改代码。配置文件通常以.properties或.xml格式存储,包含键值对或者结构化数据,使得程序可以根据不同环境或者用户...
在Java中,类加载器负责查找并加载类到Java虚拟机中。我们可以通过自定义类加载器来实现热加载。例如,`MemoryClassLoader.java`可能就是一个自定义类加载器的实现,它可以在内存中动态加载或更新类。 **JarinJAR**...
本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`这两种不同的上下文环境来加载它们。 首先,让我们了解`...