application_marshaller配置
<bean id="castorMarshaller" class="org.springframework.oxm.castor.CastorMarshaller"/>
<bean id="application" class="spring.mashaller.Application">
<property name="marshaller" ref="castorMarshaller" />
<property name="unmarshaller" ref="castorMarshaller" />
</bean>
Application.java配置
public class Application {
private static final String FILE_NAME = "settings.xml";
private Settings settings = new Settings();
private Marshaller marshaller;
private Unmarshaller unmarshaller;
//marshaller和unmarshaller的setter方法忽略
//saveSetting方法
public void saveSettings() throws IOException {
FileOutputStream os = null;
try {
os = new FileOutputStream(FILE_NAME);
this.marshaller.marshal(settings, new StreamResult(os));
} finally {
if (os != null) {
os.close();
}
}
}
//loadSetting方法
public void loadSettings() throws IOException {
FileInputStream is = null;
try {
is = new FileInputStream(FILE_NAME);
this.settings = (Settings) this.unmarshaller
.unmarshal(new StreamSource(is));
} finally {
if (is != null) {
is.close();
}
}
}
//执行方法
public static void main(String[] args) throws IOException {
ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext_mashaller.xml");
Application application = (Application) appContext.getBean("application");
application.saveSettings();
application.loadSettings();
}
}
Setting.java配置
public class Settings {
private boolean fooEnabled;
//getter和setter方法忽略
}
分享到:
相关推荐
3. **实例化Marshaller和Unmarshaller**:在Java代码中,创建`Marshaller`和`Unmarshaller`对象,然后设置所需的属性,如编码、格式化等。 4. **序列化**:调用`Marshaller.marshal()`方法,传入Java Bean对象和...
在上述代码中,`main`方法展示了如何使用JAXBContext、Marshaller和Unmarshaller进行序列化和反序列化操作。运行这个程序,你将在控制台看到XML表示形式的`HelloWorld`对象,以及从输入流反序列化回的`HelloWorld`...
该节还介绍了映射文件的使用模式和xsi:type属性的用法,以及如何通过Location属性进行映射优化。 为了个性化配置Castor XML处理流程,文档的1.3节讲述了如何配置Marshaller和Unmarshaller。Marshaller负责将Java...
- 使用`Unmarshaller.unmarshal()`方法读取XML文件并生成Java对象。 - 创建`Marshaller`实例,用于将Java对象转换为XML。 - 调用`Marshaller.marshal()`方法将Java对象写入XML文件或输出流。 3. DOM解析:DOM...
1. 阅读官方文档:Castor的官方文档是学习的起点,它详细介绍了API的使用方法和配置。 2. 分析源码:逐行阅读关键类的源码,了解其实现逻辑。 3. 编写测试:通过编写单元测试,验证对Castor的理解,并发现潜在问题...
3. **JAXB与Map**:虽然JAXB不是设计用来处理Map的,但通过自定义marshaller和unmarshaller,可以实现Map到XML的转换。这个过程相对复杂,需要编写额外的代码。 4. **Jackson与Map**:Jackson对Map的支持更加友好。...
对于服务提供者,你需要配置WsdlLocation,定义服务实现类,并设置相应的marshaller和unmarshaller。对于服务消费者,你需要配置目标服务的URL,创建一个WebServiceGatewaySupport的子类,重写...
在 Java 中,使用 javax.xml.bind 包中的类如 JAXBContext 和 Marshaller/Unmarshaller 来实现。JAXB 适用于对象模型和 XML 结构对应的情况,简化了 XML 的处理,但不适用于需要对 XML 进行复杂查询或操作的场景。 ...
5. **Marshaller和Unmarshaller**:`Marshaller`接口用于将Java对象序列化为XML,而`Unmarshaller`接口则将XML反序列化为Java对象。 **使用JAXB的优点:** 1. **自动映射**:JAXB可以自动将Java类和XML元素映射,...
通过设置消息工厂和marshaller/unmarshaller,可以方便地处理输入和输出的XML数据。 7. **安全和认证**:为了保护Web服务,可以添加安全层,如WS-Security(Web Services Security),实现用户身份验证和消息加密。...
c) 配置 Spring:在 Spring 配置文件中,定义一个 `WebServiceTemplate` bean,并配置其消息工厂和marshaller/unmarshaller。 d) 创建服务发布类:将服务实现注入到 `WebServiceExporter` 类,然后调用 `export()` ...
总之,JAXB是Java中处理XML的强大工具,通过注解BEAN类和使用Unmarshaller/Marshaller对象,可以轻松地在XML文档和Java对象之间进行转换。在实际开发中,结合提供的jar包和Util工具类,可以大大提高开发效率。
XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于数据交换、配置文件以及在Web服务中传输数据。...理解这些解析方式的原理和使用方法,是成为一名熟练的Java XML开发者的必备技能。
使用`Unmarshaller`可以从XML文件中创建Java对象,而`Marshaller`可以将Java对象转换回XML。 2. **导入数据到MySQL**: - 使用JDBC:首先,加载MySQL的JDBC驱动并通过`DriverManager.getConnection()`建立数据库...
`javax.xml.bind.JAXBContext`和`javax.xml.bind.Marshaller/Unmarshaller`是JAXB的主要组件。 6. DOM4J:另一个流行的第三方库,提供了比Java内置DOM更强大的功能和性能。DOM4J提供了一个灵活的API,支持XPath查询...
4. **Jaxb2Marshaller**: Spring提供的JAXB(Java Architecture for XML Binding)marshaller/unmarshaller,用于在Java对象和XML之间进行转换。 **三、Spring WebService的工作流程** 1. **定义契约(Contract)*...
3. **Marshaller与Unmarshaller**:理解这两者的作用,它们负责将Java对象转换为XML消息(序列化)和将XML消息转换回Java对象(反序列化)。 4. **WSDL生成与使用**:学习如何自动生成或手动编写WSDL文件,它是服务...
然后,我们可以通过JAXBContext来创建`Marshaller`和`Unmarshaller`对象。`Marshaller`用于将Java对象转换为XML,而`Unmarshaller`则负责将XML转换回Java对象。例如: ```java import javax.xml.bind.JAXBContext; ...
- 创建`JAXBContext`实例,它是整个转换的核心,用于创建Unmarshaller(反序列化)和Marshaller(序列化)对象。 - 使用`Unmarshaller.unmarshal()`方法将XML数据转换为Java对象。 - 反之,使用`Marshaller.marshal...