org.test4j.module.spring.annotations.SpringBeanRemote Maven / Gradle / Ivy
package org.test4j.module.spring.annotations;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
/**
* 用来定义SpringHttpInvoker client bean
*
* @author darui.wudr
*
*/
@SuppressWarnings("rawtypes")
@Target(FIELD)
@Retention(RUNTIME)
public @interface SpringBeanRemote {
/**
* httpInvoker的 beanid
*
* @return
*/
String value() default "";
/**
* httpInvoke的serviceUrl
*
* @return
*/
String serviceUrl() default "";
/**
* httpInvoker的serviceInterface
*
* @return
*/
Class serviceInterface() default Object.class;
/**
* 远程连接方式
*
* @return
*/
SpringBeanRemoteType type() default SpringBeanRemoteType.hessian;
public static enum SpringBeanRemoteType {
hessian, httpinvoker;// esb?
/**
* 从url路径中解析出remote bean的类型
*/
public final static SpringBeanRemoteType getTypeFromURL(String url) {
if (url == null || url.contains("/") == false) {
return null;
}
if (url.startsWith(hessian.name() + "/")) {
return hessian;
}
if (url.startsWith(httpinvoker.name() + "/")) {
return httpinvoker;
}
return null;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy