程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Spring自界說設置裝備擺設Schema可擴大(一)

Spring自界說設置裝備擺設Schema可擴大(一)

編輯:關於JAVA

Spring自界說設置裝備擺設Schema可擴大(一)。本站提示廣大學習愛好者:(Spring自界說設置裝備擺設Schema可擴大(一))文章只能為提供參考,不一定能成為您想要的結果。以下是Spring自界說設置裝備擺設Schema可擴大(一)正文


簡述

本教程重要引見若何擴大Spring的xml設置裝備擺設,讓Spring可以或許辨認我們自界說的Schema和Annotation。

這裡我們要完成的功效以下,起首讓Spring可以或許辨認上面的設置裝備擺設。

<std:annotation-endpoint />

這個設置裝備擺設的要完成的功效是,設置裝備擺設完後可以或許讓Spring掃描我們自界說的@Endpoint注解。而且依據注解主動宣布WebService辦事。功效未完整完成,作為擴大Spring的教程,起一個拋磚引玉的感化。

創立項目

起首須要創立一個Java項目,這裡應用Maven創立一個quickstart項目(通俗Java項目)。
POM文件內容以下

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.codestd</groupId>
<artifactId>spring-cxf-annotation-support</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>${project.artifactId}</name>
<description>使您的項目可以經由過程注解的方法宣布WebService,基於Spring+CXF封裝,無API侵入。</description>
<url>https://github.com/CodeSTD/spring-cxf-annotation-support</url>
<licenses>
<license>
<name>The Apache License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<name>jaune(WangChengwei)</name>
<email>[email protected]</email>
<roles>
<role>developer</role>
</roles>
<timezone>GMT+8</timezone>
</developer>
</developers>
<scm>
<connection>
https://github.com/CodeSTD/spring-cxf-annotation-support.git
</connection>
<developerConnection>
https://github.com/CodeSTD/spring-cxf-annotation-support.git
</developerConnection>
</scm>
<properties>
<junit.version>4.12</junit.version>
<spring.version>4.2.4.RELEASE</spring.version>
<cxf.version>3.1.3</cxf.version>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

界說Schema

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns="http://www.codestd.com/schema/std/ws" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:beans="http://www.springframework.org/schema/beans"
targetNamespace="http://www.codestd.com/schema/std/ws"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xsd:import namespace="http://www.springframework.org/schema/beans"/>
<xsd:annotation>
<xsd:documentation><![CDATA[ Namespace support for the annotation provided by cxf framework. ]]></xsd:documentation>
</xsd:annotation>
<xsd:element name="annotation-endpoint">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="beans:identifiedType">
<xsd:attribute name="name" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[ Name of bean. Insted of id ]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="package" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation><![CDATA[ Pakeage to scan. ]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>

關於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}注解完成辦事裸露的目標。
* <p>擴大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://www.codestd.com/schema/std/ws/stdws-1.0.xsd。即Sechma中界說的targetNamespace+文件名。
在Spring中參加定名空間,並應用標簽,以下。這裡要用到Spring的注解掃描功效。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:std="http://www.codestd.com/schema/std/ws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.codestd.com/schema/std/ws
http://www.codestd.com/schema/std/ws/stdws-1.0.xsd">
<std:annotation-endpoint package="com.codestd.spring.cxf.ws"/>
</beans>

在設置裝備擺設中界說了要掃描的包,不依附與context的設置裝備擺設。

以上所述是小編給年夜家分享的Spring自界說設置裝備擺設Schema可擴大(一),願望對年夜家有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved