- 浏览: 510174 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (156)
- xml (4)
- web前端 (24)
- jQuery (18)
- java (38)
- SQL (9)
- perl (2)
- OTRS (1)
- GWT (4)
- Linux (32)
- Maven (2)
- Spring (2)
- Oracle Win7 (1)
- css (8)
- eclipse (3)
- mysql (11)
- tomcat (5)
- git (4)
- javascript (22)
- font (1)
- android (1)
- log4j (1)
- email (1)
- sublime plugin (1)
- html (2)
- matches (1)
- php (3)
- apache (3)
- gd (1)
- docker (5)
- rails (1)
- RabbitMQ (1)
- Ubuntu (3)
- L2TP VPN (1)
- nodejs (1)
- oraclejet (1)
- ubutun (1)
- ntp (1)
- ngix (1)
- ssl (1)
- https (1)
- Linux,Debian (2)
- dpkg (1)
- pac (1)
- vi (1)
- vim (1)
- java,http (0)
- httpClient (0)
- shutter (1)
- shell (1)
- redmine (1)
最新评论
-
纵观全局:
配置之后,连接显示不是私密连接
keytool生成证书与Tomcat SSL配置 -
zhuchao_ko:
可以 伪造
java获得ip地址 -
longhua2003:
代码太乱了
java下载文件 -
tomhat:
ccx410 写道 安装gwt报错,unable to ret ...
GWT CellTable -
ccx410:
安装gwt报错,unable to retrieve osgi ...
GWT CellTable
1、如果只是创建一个XML文件,那么只需要导入dom4j-1.6.1.jar就可以了,路径如下:
spring-framework-2.5.6\lib\dom4j\dom4j-1.6.1.jar
如果是需要读取或者修改,那么就需要导入这个库内的另外一个文件:
spring-framework-2.5.6\lib\dom4j\jaxen-1.1-beta-7.jar
<dependency>
<groupId>org.apache.directory.studio</groupId>
<artifactId>org.dom4j.dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1-beta-7</version>
</dependency>
// MyDom4j.java
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class MyDom4j {
/**
* 动态创建一个bean配置文件,包含HelloWorld这个bean,并添加初始值
* */
public void createXML(String xmlPath, String msg) throws IOException {
Document XmlDoc = DocumentHelper.createDocument();
XmlDoc.addDocType("beans", "-//SPRING//DTD BEAN//EN",
"http://www.springframework.org/dtd/spring-beans.dtd");
//首先创建beans根节点
Element beansEle = XmlDoc.addElement("beans");
//注意:dom4j是支持类似于jQuery一样的链式操作的
Element beanHelloWorld = beansEle.addElement("bean")
.addAttribute("id", "HelloWorld")
.addAttribute("class", "HelloWorld");
Element propertyHelloWorld = beanHelloWorld.addElement("property")
.addAttribute("name", "msg");
Element valueHelloWorld = propertyHelloWorld.addElement("value")
.addText(msg);
XMLWriter outXml = new XMLWriter(new FileWriter(new File(xmlPath)));
outXml.write(XmlDoc);
outXml.close();
}
/**
* 首先遍历一个bean配置文件里的所有bean,获取id和class的值, 然后修改HelloWorld这个bean的msg的值
* @throws IOException
* */
public void editXML(String xmlPath, String msg) throws DocumentException, IOException {
Document XmlDoc = new SAXReader().read(new File(xmlPath));
List xmlList = XmlDoc.selectNodes("/beans/bean");
System.out.println("\r\n遍历所有的bean获得id和class:");
for (Element element : xmlList) {
System.out.println("id:" + element.attributeValue("id")
+ " / class:" + element.attributeValue("class"));
}
System.out.println("\r\n动态修改HelloWorld这个bean的msg值:");
//用XPath来获取单一节点
Node valueHelloWorld = XmlDoc
.selectSingleNode("/beans/bean[@id='HelloWorld']/property[@name='msg']/value");
System.out.println("原始值为:" + valueHelloWorld.getText());
valueHelloWorld.setText(msg);
System.out.println("修改后的值为:" + valueHelloWorld.getText());
//修改完了以后记得保存,要不然你会纳闷为什么XML文件没变的,哈哈
XMLWriter outXml = new XMLWriter(new FileWriter(new File(xmlPath)));
outXml.write(XmlDoc);
outXml.close();
}
}
// HelloWorld.java
public class HelloWorld {
public String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
// HelloWorldTester.java
import java.io.IOException;
import org.dom4j.DocumentException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import com.iteye.bolide74.action.HelloWorld;
import com.iteye.bolide74.action.MyDom4j;
public class HelloWorldTester {
public static void main(String[] args) {
String xmlPath = "/WebContent/WEB-INF/conf/config_dom4j.xml";
MyDom4j myBeans = new MyDom4j();
try {
myBeans.createXML(System.getProperty("user.dir") + xmlPath,
"Hello,world!this is created by dom4j!");
} catch (IOException e) {
e.printStackTrace();
}
ApplicationContext ac = new FileSystemXmlApplicationContext(xmlPath);
HelloWorld helloWorld = (HelloWorld) ac.getBean("HelloWorld");
System.out.println(helloWorld.getMsg());
try {
myBeans.editXML(System.getProperty("user.dir") + xmlPath,
"Hello,world!this is edited by dom4j!");
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 重新获取bean配置文件
ac = new FileSystemXmlApplicationContext(xmlPath);
helloWorld = (HelloWorld) ac.getBean("HelloWorld");
System.out.println("\r\n" + helloWorld.getMsg());
}
}
spring-framework-2.5.6\lib\dom4j\dom4j-1.6.1.jar
如果是需要读取或者修改,那么就需要导入这个库内的另外一个文件:
spring-framework-2.5.6\lib\dom4j\jaxen-1.1-beta-7.jar
<dependency>
<groupId>org.apache.directory.studio</groupId>
<artifactId>org.dom4j.dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1-beta-7</version>
</dependency>
// MyDom4j.java
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class MyDom4j {
/**
* 动态创建一个bean配置文件,包含HelloWorld这个bean,并添加初始值
* */
public void createXML(String xmlPath, String msg) throws IOException {
Document XmlDoc = DocumentHelper.createDocument();
XmlDoc.addDocType("beans", "-//SPRING//DTD BEAN//EN",
"http://www.springframework.org/dtd/spring-beans.dtd");
//首先创建beans根节点
Element beansEle = XmlDoc.addElement("beans");
//注意:dom4j是支持类似于jQuery一样的链式操作的
Element beanHelloWorld = beansEle.addElement("bean")
.addAttribute("id", "HelloWorld")
.addAttribute("class", "HelloWorld");
Element propertyHelloWorld = beanHelloWorld.addElement("property")
.addAttribute("name", "msg");
Element valueHelloWorld = propertyHelloWorld.addElement("value")
.addText(msg);
XMLWriter outXml = new XMLWriter(new FileWriter(new File(xmlPath)));
outXml.write(XmlDoc);
outXml.close();
}
/**
* 首先遍历一个bean配置文件里的所有bean,获取id和class的值, 然后修改HelloWorld这个bean的msg的值
* @throws IOException
* */
public void editXML(String xmlPath, String msg) throws DocumentException, IOException {
Document XmlDoc = new SAXReader().read(new File(xmlPath));
List xmlList = XmlDoc.selectNodes("/beans/bean");
System.out.println("\r\n遍历所有的bean获得id和class:");
for (Element element : xmlList) {
System.out.println("id:" + element.attributeValue("id")
+ " / class:" + element.attributeValue("class"));
}
System.out.println("\r\n动态修改HelloWorld这个bean的msg值:");
//用XPath来获取单一节点
Node valueHelloWorld = XmlDoc
.selectSingleNode("/beans/bean[@id='HelloWorld']/property[@name='msg']/value");
System.out.println("原始值为:" + valueHelloWorld.getText());
valueHelloWorld.setText(msg);
System.out.println("修改后的值为:" + valueHelloWorld.getText());
//修改完了以后记得保存,要不然你会纳闷为什么XML文件没变的,哈哈
XMLWriter outXml = new XMLWriter(new FileWriter(new File(xmlPath)));
outXml.write(XmlDoc);
outXml.close();
}
}
// HelloWorld.java
public class HelloWorld {
public String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
// HelloWorldTester.java
import java.io.IOException;
import org.dom4j.DocumentException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import com.iteye.bolide74.action.HelloWorld;
import com.iteye.bolide74.action.MyDom4j;
public class HelloWorldTester {
public static void main(String[] args) {
String xmlPath = "/WebContent/WEB-INF/conf/config_dom4j.xml";
MyDom4j myBeans = new MyDom4j();
try {
myBeans.createXML(System.getProperty("user.dir") + xmlPath,
"Hello,world!this is created by dom4j!");
} catch (IOException e) {
e.printStackTrace();
}
ApplicationContext ac = new FileSystemXmlApplicationContext(xmlPath);
HelloWorld helloWorld = (HelloWorld) ac.getBean("HelloWorld");
System.out.println(helloWorld.getMsg());
try {
myBeans.editXML(System.getProperty("user.dir") + xmlPath,
"Hello,world!this is edited by dom4j!");
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 重新获取bean配置文件
ac = new FileSystemXmlApplicationContext(xmlPath);
helloWorld = (HelloWorld) ac.getBean("HelloWorld");
System.out.println("\r\n" + helloWorld.getMsg());
}
}
发表评论
-
Apache HTTPClient 忽略证书
2019-01-25 15:03 1613/** * httpclient4.5.2版 * ... -
HTTP 返回码
2019-01-24 15:28 428HTTP1.1新增了五种请求方法:OPTIONS、PUT、PA ... -
Java SizeToHuman 大小转换为mb kb tb等
2017-08-21 15:12 1655public class TestSizeToHuman ... -
java常规格式化说明
2016-01-20 17:27 1384转 换 符说 明 ... -
java验证是否包含特殊字符/\:*?"<>
2016-01-05 15:25 8767public class MatchTest { ... -
JSP和JSTL获取服务器参数
2015-09-11 13:57 1200<%@ page language="java ... -
java计算时间差比较时间大小
2015-05-20 10:53 1122今天需要比较时间在网上找到然后写下: 比如:现在是:200 ... -
java发邮件
2014-11-19 15:37 1237一、 import java.util.Date; im ... -
java log4j.properties
2014-11-18 09:30 922log4j.properties配置文件如下: log4j ... -
java获得ip地址
2014-11-17 18:18 1330public String getIpAddr(Htt ... -
java下载文件
2014-11-07 10:57 1100// 文件名称中文乱码new String(filename. ... -
Android中RelativeLayout各个属性的含义
2014-10-11 15:06 878android:layout_above="@id ... -
Http发送请求
2014-09-17 15:01 902package wzh.Http; import j ... -
导出数据到excel
2014-09-03 16:20 1225/** * */ package com.chin ... -
Spring MVC @RequestBody接收JSON报HTTP 415/400问题的解决
2014-08-27 13:06 3812Ajax请求传@RequestBody(接收JSON)参数时, ... -
request获取各种路径
2014-08-06 17:06 951从request获取各种路径总结 request.getRea ... -
Linux下设置开机自启动tomcat
2014-07-23 11:51 1956centos7 设置tomcat开机自启动 在tomcat/ ... -
Linux 设置环境变量JAVA_HOME ,鼠标右键打开终端,修改hostname
2014-07-03 14:21 1775一、ubuntu永久修改主机名 1、查看主机名 在Ubunt ... -
keytool生成证书与Tomcat SSL配置
2014-07-02 17:03 18176一、Keytool介绍 Keytool是一个Java数据证书 ... -
Map的几种循环方式
2013-09-12 15:38 1560for(String dataKey : paraMap.ke ...
相关推荐
在Spring框架中,动态加载配置文件是一项重要的功能,它使得开发者在开发过程中无需重启应用就能实时更新配置,极大地提高了开发效率。热部署方案是这一功能的具体应用,它允许我们在不中断服务的情况下,对应用程序...
本篇文章将深入探讨如何在Spring中读取不同目录下的配置文件,以及使用`ClassPathXmlApplicationContext`和`FileSystemXmlApplicationContext`这两种不同的上下文环境来加载它们。 首先,让我们了解`...
解决这个问题的关键在于深入理解Spring的Bean生命周期和配置机制,检查配置文件、注解使用、依赖关系等,确保每个Bean的定义都是唯一的,且作用域设置正确。同时,对源码进行调试也是一个有效的排查手段,可以追踪到...
通过上述的分析与解释,我们可以看出Spring AOP配置文件的核心在于定义不同的Bean以及它们之间的关系。这些Bean可以是具体的实现类也可以是代理工厂,通过这种方式,Spring AOP为我们提供了一种优雅的方式来管理横切...
本篇将详细探讨两种工厂方法——实例工厂方法和静态工厂方法,用于创建Spring Bean。 首先,我们要理解Spring Bean的概念。Spring Bean是Spring IoC容器管理的对象,这些对象的生命周期、依赖关系以及初始化行为由...
本篇将详细讲解如何在Spring 3.0的配置文件中加载Properties文件,以便在运行时动态获取和使用这些配置。 首先,我们需要一个Properties文件,例如`application.properties`,它通常放在项目的类路径根目录下。这个...
以上就是基于Spring Boot和Spring Kafka动态创建Kafka消费者的基本步骤。动态创建消费者允许我们在运行时根据需求开启或关闭消费功能,提高了应用的灵活性。理解并熟练运用这些知识,能够帮助你在实际项目中构建出...
在Spring MVC框架中,配置文件是整个应用的核心组成部分,它定义了bean的创建、依赖关系以及各种服务的配置。这篇博客“spring mvc 读取配置文件”将深入探讨如何在Spring MVC中读取和使用配置文件,以及相关工具的...
在这个特定的"spring IOC反射装载bean"的主题中,我们将深入探讨Spring如何通过XML配置文件来加载和管理Bean,并利用Java的反射机制来实例化这些Bean。 首先,Spring容器通过读取XML配置文件来获取Bean的定义。这些...
以上就是关于"Spring PropertyPlaceholderConfigurer配置文件加载器集成ZooKeeper来实现远程配置读取"的详细解释,涵盖了Spring的配置处理、ZooKeeper的使用以及两者结合的实现过程。理解并掌握这一技术,有助于提升...
这里的`beans.xml`是配置文件,`myBean`是bean的ID。这样,我们就能在普通类中获取到Spring管理的bean实例。 2. **@Autowired**:如果普通类也是Spring的一部分,即它也被Spring管理,那么可以使用注解`@Autowired`...
Spring Boot动态创建Bean示例代码详解 Spring Boot框架中提供了多种方式来创建Bean,今天我们就来学习其中的一种,即动态创建Bean。动态创建Bean可以根据特定的条件来决定是否创建Bean,这在实际开发中非常有用。 ...
`@Autowired`注解用于自动装配Bean的依赖,`@Value`用于注入值,可以是从配置文件或表达式计算出的值,而`@Lookup`则用于动态查找服务。 `AutowiredAnnotationBeanPostProcessor`在解析构造函数时,会检查类上和...
10. `PlaceHolderBinder`:这个类可能负责解析和绑定属性占位符,如环境变量和配置文件中的值,到bean的属性上。 总的来说,这个压缩包中的代码片段展示了如何在Spring中利用`@Bean`注解和`initMethod`属性实现异步...
通常,Spring容器会在应用启动时扫描配置文件,创建并初始化所有定义的Bean。然而,通过动态加载,我们可以避免不必要的初始化,直到真正需要某个Bean时才去创建它。 动态加载Bean主要有以下几种实现方式: 1. **...
对于接口,Spring提供了`@Lookup`注解,可以在运行时动态创建Bean实例。这通常用于实现类的懒加载或者运行时的选择。 6. **使用`ApplicationContextAware`接口** 实现`ApplicationContextAware`接口,可以获取到`...
通过使用 Spring 的 BeanFactoryPostProcessor 接口类,我们可以动态地加载所需要的 bean,即使是在引入已经打包在 jar 里面的程序而没有办法做出修改的情况下。 在本文中,我们将通过一个示例代码,详细介绍如何...
Spring提供了多种方式来实例化Bean,如`ClassPathXmlApplicationContext`或`FileSystemXmlApplicationContext`,它们都是从指定的XML配置文件加载Bean定义。在实例化Bean时,Spring会根据Bean定义的scope属性决定是...