简介
ZooKeeper 是一种用于分布式应用程序的分布式开源协调服务。
Zookeeper 公开了一组简单的原语,分布式应用程序可以构建这些原语,以实现更高级别的服务,以实现同步,配置维护以及组和命名。
Zookeeper 被设计为易于编程,并使用在熟悉的文件系统目录树结构之后设计的数据模型。
它在Java 中运行,并且具有Java 和C 的绑定。
众所周知,协调服务很难做到。他们特别容易出现比赛条件和死锁等错误。
ZooKeeper 背后的动机是减轻分布式应用程序从头开始实施协调服务的责任
1 | import graphql.ExecutionResult; |
今天要说的是JavaScript的闭包问题,先来看代码:
1 | <script type="text/javascript"> |
话不多说,先看异常:
1 | 1 HTTP Status 500 - Could not write content: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0]->com.agen.entity.User["positionchanges"]->org.hibernate.collection.internal.PersistentSet[0]->com.agen.entity.Positionchange["position"]->com.agen.entity.Position_$$_jvst714_7["handler"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0]->com.agen.entity.User["positionchanges"]->org.hibernate.collection.internal.PersistentSet[0]->com.agen.entity.Positionchange["position"]->com.agen.entity.Position_$$_jvst714_7["handler"]) |
网上找到的解决办法说是因为,hibernate会给每一个被管理的对象加上hibernateLayInitializer属性,同时structs-jsonplugin或者其他的jsonplugin都是。
因为jsonplugin用的是java的”内审机制”,hibernate会给被管理的pojo加入一个hibernateLayInitializer属性,jsonplugin通过java的反射机制将pojo解析为json时,
同时hibernateLazyInitializer属性也进行反射操作,但是hibernateLazyIniyializer无法由反射得到,所以就抛出了异常。
下载
去Vue.js官网将其下载至本地,通过script 标签引入。
1 | <script src="js/vue.js"></script> |
使用npm
npm 是一个非常有用的JavaScript 包管理工具,通过npm 可以非常迅速地使用、安装和升级Vue.js 。
1 | // 安装 |
使用CDN
这里推荐使用Bootstrap 的CDN 加速服务,地址为https://www.bootcdn.cn。
1 | <script src="https://cdn.bootcss.com/vue/2.6.10/vue.common.dev.js"></script> |
注:关于Vue的读法(读音 /vjuː/,类似于 view)。