多平台统一管理软件接口,如何实现多平台统一管理软件接口
205
2023-07-22
Spring自定义配置Schema可扩展(一)
简述
本教程主要介绍如何扩展Spring的xml配置,让Spring能够识别我们自定义的Schema和Annotation。
这里我们要实现的功能如下,首先让Spring能够识别下面的配置。
这个配置的要实现的功能是,配置完后能够让Spring扫描我们自定义的@Endpoint注解。并且根据注解自动发布WebService服务。功能未完全实现,作为扩展Spring的教程,起一个抛砖引玉的作用。
创建项目
首先需要创建一个java项目,这里使用Maven创建一个quickstart项目(普通Java项目)。
POM文件内容如下
https://github.com/CodeSTD/spring-cxf-annotation-support.git
https://github.com/CodeSTD/spring-cxf-annotation-support.git
</developerConnection>
定义Schema
xmlns:xsd="http://w3.org/2001/XMLSchema" xmlns:beans="http://springframework.org/schema/beans" targetNamespace="http://codestd.com/schema/std/ws" elementFormDefault="qualified" attributeFormDefault="unqualified">
xmlns:xsd="http://w3.org/2001/XMLSchema"
xmlns:beans="http://springframework.org/schema/beans"
targetNamespace="http://codestd.com/schema/std/ws"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
关于Sechma的知识此处不再赘述,不会用的小伙伴们需要先去了解下。sechma位置在src/main/resources/META-INF/schema/stdws-1.0.xsd。
定义注解
package com.codestd.spring.cxf.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 用于暴露WebService服务,通过在类上加入{@code @Endpoint}注解实现服务暴露的目的。
*
扩展Spring的Bean扫描功能,在Bean上加入此注解后会自动注册到Spring容器中。
* @author jaune(WangChengwei)
* @since 1.0.0
*/
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Endpoint {
/**
* 此Endpoint在Spring容器中的ID
* @return
*/
String id();
/**
* 服务发布的地址,应神略服务器地址及端口号和项目路径
* @return
*/
String address();
}
在Spring中的配置
打开“Window”–“Preferences”–“XML”–“XML Catalog”。点击“Add”,然后在Location中选择我们上面创建的xsd。“Key type”选择Namespace Name,key输入http://codestd.com/schema/std/ws/stdws-1.0.xsd。即Sechma中定义的targetNamespace+文件名。
在Spring中加入命名空间,并使用标签,如下。这里要用到Spring的注解扫描功能。
xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xmlns:std="http://codestd.com/schema/std/ws" xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans-4.0.xsd http://codestd.com/schema/std/ws http://codestd.com/schema/std/ws/stdws-1.0.xsd">
xmlns:xsi="http://w3.org/2001/XMLSchema-instance"
xmlns:std="http://codestd.com/schema/std/ws"
xsi:schemaLocation="http://springframework.org/schema/beans
http://springframework.org/schema/beans/spring-beans-4.0.xsd
http://codestd.com/schema/std/ws
http://codestd.com/schema/std/ws/stdws-1.0.xsd">
在配置中定义了要扫描的包,不依赖与context的配置。
以上所述是给大家分享的Spring自定义配置Schema可扩展(一),希望对大家有所帮助。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~