当前位置: 首页 > news >正文

深圳市南山区做网站的小公司公司做网站价格

深圳市南山区做网站的小公司,公司做网站价格,网站模仿侵权,网站升级改版2019独角兽企业重金招聘Python工程师标准 一、实体bean的定义 回顾一下我们需要定义的4个标签 定义注册中心标签#xff1a;xmen:registry nameregistry regProtocolzookeeper address127.0.0.1:2181 connectTimeout 一、实体bean的定义 回顾一下我们需要定义的4个标签 定义注册中心标签xmen:registry nameregistry regProtocolzookeeper address127.0.0.1:2181 connectTimeout2000/定义服务协议标签xmen:protocol namexmen port20000 /定义服务提供标签xmen:service interfacexxx.xxx.xxx.service classxxx port8000/或者 xmen:service interfacexxx.xxx.xxx.service refxxx port8000/定义服务引用标签xmen:referer idxxxService interfacexxx.xxx.xxx.service/UML图设计如下 RegistyConfig、ServiceConfig、RefererConfig分别继承自抽象类AbstractConfig并分别定义了三个标签的相关属性。ServiceConfigBean、RefererConfigBean用于实现spring的相关接口达到对配置文件中bean进行处理的目的。 二、定义xsd文件xmen.xsd ?xml version1.0 encodingUTF-8? xsd:schema xmlnshttp://www.solid4j.com/schema/xmen xmlns:xsdhttp://www.w3.org/2001/XMLSchemaxmlns:toolhttp://www.springframework.org/schema/tool xmlns:beanshttp://www.springframework.org/schema/beanstargetNamespacehttp://www.solid4j.com/schema/xmenxsd:import namespacehttp://www.w3.org/XML/1998/namespace /xsd:import namespacehttp://www.springframework.org/schema/tool /xsd:import namespacehttp://www.springframework.org/schema/beans /xsd:complexType nameabstractConfigxsd:anyAttribute //xsd:complexTypexsd:complexType nameabstractRegistryConfigxsd:complexContentxsd:extension baseabstractConfigxsd:attribute nameid typexsd:ID /xsd:attribute namename typexsd:string useoptionalxsd:annotationxsd:documentation![CDATA[ 注册名称. ]]/xsd:documentation/xsd:annotation/xsd:attributexsd:attribute nameregProtocol typexsd:stringuseoptionalxsd:annotationxsd:documentation![CDATA[ 注册协议. ]]/xsd:documentation/xsd:annotation/xsd:attributexsd:attribute nameaddress typexsd:string useoptionalxsd:annotationxsd:documentation![CDATA[ 注册中心地址. ]]/xsd:documentation/xsd:annotation/xsd:attributexsd:attribute nameconnectTimeout typexsd:integeruseoptionalxsd:annotationxsd:documentation![CDATA[ 注册中心连接超时时间(毫秒). ]]/xsd:documentation/xsd:annotation/xsd:attribute/xsd:extension/xsd:complexContent/xsd:complexTypexsd:complexType nameabstractProtocolConfigxsd:complexContentxsd:extension baseabstractConfigxsd:attribute nameid typexsd:ID /xsd:attribute namename typexsd:string useoptionalxsd:annotationxsd:documentation![CDATA[ 协议名称. ]]/xsd:documentation/xsd:annotation/xsd:attributexsd:attribute nameport typexsd:integer useoptionalxsd:annotationxsd:documentation![CDATA[ 服务端口 ]]/xsd:documentation/xsd:annotation/xsd:attribute/xsd:extension/xsd:complexContent/xsd:complexTypexsd:complexType nameabstractServiceConfigxsd:complexContentxsd:extension baseabstractConfigxsd:attribute nameid typexsd:ID /xsd:attribute nameinterface typexsd:tokenxsd:annotationxsd:documentation![CDATA[ 定义接口在注册中心中注册 ]]/xsd:documentationxsd:appinfotool:annotationtool:expected-type typejava.lang.Class //tool:annotation/xsd:appinfo/xsd:annotation/xsd:attributexsd:attribute nameref typexsd:string useoptionalxsd:annotationxsd:documentation![CDATA[ 接口实现 ]]/xsd:documentation/xsd:annotation/xsd:attributexsd:attribute nameclass typexsd:string useoptionalxsd:annotationxsd:documentation![CDATA[ 接口实现 ]]/xsd:documentation/xsd:annotation/xsd:attribute/xsd:extension/xsd:complexContent/xsd:complexTypexsd:complexType nameabstractRefererConfigxsd:complexContentxsd:extension baseabstractConfigxsd:attribute nameid typexsd:ID /xsd:attribute nameinterface typexsd:token userequiredxsd:annotationxsd:documentation![CDATA[ 调用的接口 ]]/xsd:documentationxsd:appinfotool:annotationtool:expected-type typejava.lang.Class //tool:annotation/xsd:appinfo/xsd:annotation/xsd:attribute/xsd:extension/xsd:complexContent/xsd:complexTypexsd:element nameregistry typeabstractRegistryConfigxsd:annotationxsd:documentation![CDATA[ 注册中心配置 ]]/xsd:documentation/xsd:annotation/xsd:elementxsd:element nameprotocol typeabstractProtocolConfigxsd:annotationxsd:documentation![CDATA[ 服务协议 ]]/xsd:documentation/xsd:annotation/xsd:elementxsd:element nameservice typeabstractServiceConfigxsd:annotationxsd:documentation![CDATA[ 服务配置 ]]/xsd:documentation/xsd:annotation/xsd:elementxsd:element namereferer typeabstractRefererConfigxsd:annotationxsd:documentation![CDATA[ 引用服务配置 ]]/xsd:documentation/xsd:annotation/xsd:element /xsd:schema三、定义handler处理文件spring.schemas和spring.handlers http\://www.solid4j.com/schema/xmen.xsdMETA-INF/xmen.xsdhttp\://www.solid4j.com/schema/xmencom.solid4j.xmen.config.spring.handler.XmenNamespaceHandler四、编写具体的Handler类 public class XmenNamespaceHandler extends NamespaceHandlerSupport {Overridepublic void init() {registerBeanDefinitionParser(registry, new XmenBeanDefinitionParser(RegistryConfig.class, true));registerBeanDefinitionParser(protocol, new XmenBeanDefinitionParser(ProtocolConfig.class, true));registerBeanDefinitionParser(service, new XmenBeanDefinitionParser(ServiceConfigBean.class, true));registerBeanDefinitionParser(referer, new XmenBeanDefinitionParser(RefererConfigBean.class, false));} }public class XmenBeanDefinitionParser implements BeanDefinitionParser {private static final Logger LOGGER LoggerFactory.getLogger(BeanDefinitionParser.class);private final Class? beanClass;private final boolean required;public XmenBeanDefinitionParser(Class? beanClass, boolean required) {this.beanClass beanClass;this.required required;}Overridepublic BeanDefinition parse(Element element, ParserContext parseContext) {try {return parse(element, parseContext, beanClass, required);} catch (ClassNotFoundException e) {e.printStackTrace();}return null;}private BeanDefinition parse(Element element, ParserContext parserContext, Class? beanClass, boolean required) throws ClassNotFoundException {RootBeanDefinition bd new RootBeanDefinition();bd.setBeanClass(beanClass);bd.setLazyInit(false);String id element.getAttribute(id);if ((id null || id.length() 0) required) {String generatedBeanName element.getAttribute(name);if (generatedBeanName null || generatedBeanName.length() 0) {generatedBeanName element.getAttribute(class);}if (generatedBeanName null || generatedBeanName.length() 0) {generatedBeanName beanClass.getName();}id generatedBeanName;int counter 2;while (parserContext.getRegistry().containsBeanDefinition(id)) {id generatedBeanName (counter);}}if (id ! null) {if (parserContext.getRegistry().containsBeanDefinition(id)) {throw new IllegalStateException(Duplicate spring bean config, id id);}parserContext.getRegistry().registerBeanDefinition(id, bd);}bd.getPropertyValues().addPropertyValue(id, id);if(ServiceConfigBean.class.equals(beanClass)) {String className element.getAttribute(class);if(className ! null className.length() 0) {RootBeanDefinition classDefinition new RootBeanDefinition();classDefinition.setBeanClass(Class.forName(className, true, Thread.currentThread().getContextClassLoader()));classDefinition.setLazyInit(false);bd.getPropertyValues().addPropertyValue(ref, new BeanDefinitionHolder(classDefinition, id Impl));}}for (Method setter : beanClass.getMethods()) {String name setter.getName();if (name.length() 3 || !name.startsWith(set) || !Modifier.isPublic(setter.getModifiers())) {continue;}String property name.substring(3, 4).toLowerCase() name.substring(4);if (id.equals(property)) {bd.getPropertyValues().addPropertyValue(id, id);continue;}String value element.getAttribute(property);value value.trim();if (value.length() 0 || value null) {continue;}Object reference;if (ref.equals(property)) {reference new RuntimeBeanReference(value);} else {reference new TypedStringValue(value);}bd.getPropertyValues().addPropertyValue(property, reference);}return bd;} }转载于:https://my.oschina.net/solidwang/blog/800964
http://www.zqtcl.cn/news/332082/

相关文章:

  • 常州专业网站建设费用电商推广技巧
  • 辽源市网站建设南通营销网站开发
  • 新站优化案例去韩国用什么地图导航
  • 宁波网站制作与推广WordPress怎么文章分类
  • mvc 做网站国内的搜索引擎有哪些
  • 设计视频网站腾讯云服务器网站域名备案
  • 网站建设费算费用还是固定资产镇赉县做网站的
  • 山西 旅游 英文 网站建设wordpress 设置登陆界面
  • 电商网站系统建设考试深圳网站建设培训哪家好
  • 工作室 网站项目策划书八篇案例
  • ui做网站流程建设统计网站进不去
  • 沧州网站建设优化公司网站改版
  • 网站开发工程师好不好注册科技公司流程和费用
  • wordpress站点费用vs手表官网
  • 网站买卖需要注意什么景安怎么把网站做别名
  • 网站建设网站建怎么做一个门户网站
  • 站长工具域名备案查询安卓app开发教程视频免费
  • 赶集网网站建设分析河南郑州旅游网站设计
  • 怎么可以黑网站域名建设网站的网站是什么
  • 帝国网站数据库配置文件建筑人才网招聘网官网首页
  • c 做的网站怎么上传图片阿里巴巴网站建设的目的
  • 保定模板建站平台微网站怎么做的好
  • 肇庆网站建设方案维护做学校网站素材图片素材
  • 新潮远网站建设建什么类型个人网站
  • 泉州中小企业网站制作洛浦县网站建设
  • 做游戏视频网站用什么程序好wordpress 地址修改
  • 大连的网站建设阳西网站seo
  • 网站制作电话多少网站商品图片怎么做
  • 定制做网站平台网站什么情况要更新
  • 上海网站建设哪家国外有哪些网站可以做电商