データ形式フレーム

3538 ワード

XStream
Get Start
  • http://x-stream.github.io/index.html
  • processAnnotations(DataSource.class); annotation
  • の使用
  • autodetectAnnotations(true)
  • 注釈を自動的に検出すると、すべてのクラスのタイプがキャッシュされる.だから性能は
  • です
  • 反復シーケンス化(XML->JavaBean)
  • は使用できません.
  • Annonationがあるかどうかにかかわらず、
  • に変換できます.
  • xmlノードパケット名
  • を除去する
    Annonation
  • @XStreamAlias:xmlノード名をカスタマイズするために使用され、デフォルトは属性名に等しく、rootノードのデフォルトはクラス名
  • に等しい
  • @XStreamAsAttribute:xmlノード属性、属性名を変更するには@XStreamAliasと
  • を併用する必要があります
  • @XStreamOmitField:この属性を無視する
  • @XStreamImplicit:リストのパッケージを削除
  • itemFieldName:listのノードの名前
  • @XStreamConverter:カスタムタイプで元のオブジェクトのタイプを変換
  • @XStreamConverter(value=T o t i t r i butedValueConverter.class,strings={"content"):contentノードのパッケージを除去し、内容
  • のみを残す
    Jackson
    XMLとJava Beanの変換
  • getting start
  • 公式サイト:https://www.baeldung.com/jackson
  • com.fasterxml.jackson.dataformat:jackson-dataformat-xml
  • @JacksonXmlRootElement:とノード
  • localname:指定ノード名
  • namespace : xmlns
  • @JacksonXmlProperty
  • localname
  • isAttribute=true:ノード
  • ではなく属性です.
  • kotlin使用@get:JacksonXmlProperty
  • @JacksonXmlElementWrapper:コレクションクラスを使用して複数のノードまたはサブノードを定義する
  • localname:親ノード名を定義する
  • @JacksonXmlPropertyを使用してサブノード名
  • を定義できます.
  • useWrapping=false:サブノード
  • を使用しない
  • @JacksonXmlText
  • ノードを除去し、コンテンツ
  • のみを残す.
  • プロパティとvalueのあるノードを作成するためのvalue
  • XmlMapper
  • xmlMapper.setSerializationInclusion(JsonInclude.Include.NON_NULL):空のノード
  • は無視されます.
  • xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION,true):ヘッダ情報
  • を追加
  • xmlMapper.enable(ToXmlGenerator.Feature.WRITE_XML_DECLARATION):ヘッダ情報
  • を追加
  • xmlMapper.writeValueAsString(s)
  • JsonRpc
    Getting Start
  • Dependency
  • implementation "com.fasterxml.jackson.dataformat:jackson-dataformat-xml"
  • implementation "com.fasterxml.jackson.module:jackson-module-kotlin"
  • インタフェースの提供
  • interface定義インタフェースpath:@JsonRpcService("/payment")
  • impl実装方法:@AutoJsonRpcServiceImpl
  • 呼び出しインタフェース
  • val client = JsonRpcHttpClient(URL("http://localhost:8080/xxx"), emptyMap())
  • val clientProxy = ProxyUtil.createClientProxy(javaClass.classLoader, XXXInterface::class.java, client)
  • 必要
          @Bean
          fun autoJsonRpcServiceImplExporter() = AutoJsonRpcServiceImplExporter().apply {
              setObjectMapper(jacksonObjectMapper())
          }
  • は、パターンを介して入力戻り値タイプ
  • をサポートしない.
    RequestとResponseはhttpを使用
        {
            id: 1
            method: crate
            params: [param1,2,3...]
        }
    Velocity
    Getting Start
  • implementation "org.springframework.boot:spring-boot-starter-velocity:1.4.7.RELEASE"
  • 使用
  • VelocityEngine
      var velocityEngine = VelocityEngine()
      velocityEngine.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath")
      velocityEngine.setProperty("classpath.resource.loader.class", ClasspathResourceLoader::class.java.name)
      velocityEngine.init()
  • Template
      var template = velocityEngine.getTemplate("templates/${requestMethod}.vm")
      val context = VelocityContext()
      context.put("key", "value")  
      val writer = StringWriter()
      template.merge(context, writer)
      writer.buffer.toString()
  • 転載先:https://www.cnblogs.com/judesheng/p/10621744.html