一种转换器,它接受一个网络(cnet,igraph,networkx,pathpy,…)并创建一个tikz网络以平滑地集成到乳胶中。

network2tikz的Python项目详细描述


网络2tikz

<表><广告>模块:网络2tikz< /广告><正文>日期:2018年11月7日作者:于尔根·哈克尔联系方式:hackl.j@gmx.at许可证:GNU GPLv3版本:0.1.8

这是用于转换网络的python工具network2tikz 可视化到tikz中 (tikz网络) 数字,用于本地包含到乳胶文档中。

network2tikz与python 3一起工作,并且(当前)支持 以下是python网络模块:

network2tikz的输出是 在tikz网络中 位于tikz上的库, 它允许可视化和修改 具体需求和出版物。

因为你不仅得到了网络的图像,而且 在乳胶源文件中,您可以轻松地对图形进行后期处理 (例如,添加图纸、文本、方程式等)。

因为一幅画胜过千言万语,所以举个小例子:

nodes=['a','b','c','d']edges=[('a','b'),('a','c'),('c','d'),('d','b')]gender=['f','m','f','m']colors={'m':'blue','f':'red'}style={}style['node_label']=['Alice','Bob','Claire','Dennis']style['node_color']=[colors[g]forgingender]style['node_opacity']=.5style['edge_curved']=.1fromnetwork2tikzimportplotplot((nodes,edges),'network.tex',**style)

(见上文)给出

\documentclass{standalone}\usepackage{tikz-network}\begin{document}\begin{tikzpicture}\clip (0,0) rectangle (6,6);
\Vertex[x=0.785,y=2.375,color=red,opacity=0.5,label=Alice]{a}\Vertex[x=5.215,y=5.650,color=blue,opacity=0.5,label=Bob]{b}\Vertex[x=3.819,y=0.350,color=red,opacity=0.5,label=Claire]{c}\Vertex[x=4.654,y=2.051,color=blue,opacity=0.5,label=Dennis]{d}\Edge[,bend=-8.531](a)(c)
\Edge[,bend=-8.531](c)(d)
\Edge[,bend=-8.531](d)(b)
\Edge[,bend=-8.531](a)(b)
\end{tikzpicture}\end{document}

看起来像

example

调整情节很简单,可以作为 乳胶工作流。 tikz网络手册 包含多个如何使情节看起来更好的示例。

安装

network2tikz可以从python包索引中获得,因此只需键入

pip install -U network2tikz

安装/更新。

用法

  1. 生成、操纵和研究结构、动力学和 你的复杂网络的功能和往常一样 python模块。

  2. 而不是默认的绘图函数(例如igraph.plot()networkx.draw())调用network2tikzby

    plot(G,'mytikz.tex')

    将网络可视化存储为tikz文件 mytikz.tex。使用以下命令加载模块:

    fromnetwork2tikzimportplot

    高级用法: 当然,你总是可以通过操纵 生成的乳胶文件,但为什么不直接在python中执行呢?做 所以,所有可视化选项都可用 在tikz网络中也有 在network2tikz中实现。情节的出现可以是 按关键字参数修改(有关详细说明,请 见下文)。

    my_style={}plot(G,'mytikz.tex',**my_style)

    参数遵循中可用的选项 tikz网络库 并在 这个 tikz网络手册

    另外,如果您对最终输出更感兴趣, 不仅使用了.tex文件

    plot(G,'mypdf.pdf')

    将绘图保存为PDF格式,或

    plot(G)

    创建时间图直接显示结果, 也就是说,类似于matplotlib函数show()。最后,你可以 同时创建一个节点和边列表,它可以被读取并且很容易 修改(在后处理步骤中) 使用tikz网络

    plot(G,'mycsv.csv')
  3. 注意:

    < Buff行情>

    为了编辑这个情节,请确保 安装了tikz网络!


  4. 编译图或将mytikz.tex的内容添加到 乳胶源代码。使用选项standalone=false仅使用tikz 图将被保存,然后可以很容易地包含在 乳胶文档通过\input{/path/to/mytikz.tex}

  5. < > >

    简单示例

    为了便于说明,类似于 这个 python-igraph教程 使用。如果您正在使用另一个python网络模块,并且喜欢 按照这个例子,请看一下 这个 提供的示例

    创建网络对象并添加一些边。

    nodes=['a','b','c','d']edges=[('a','b'),('a','c'),('c','d'),('d','b')]gender=['f','m','f','m']colors={'m':'blue','f':'red'}style={}style['node_label']=['Alice','Bob','Claire','Dennis']style['node_color']=[colors[g]forgingender]style['node_opacity']=.5style['edge_curved']=.1fromnetwork2tikzimportplotplot((nodes,edges),'network.tex',**style)
    0

    添加节点和边缘属性。

    nodes=['a','b','c','d']edges=[('a','b'),('a','c'),('c','d'),('d','b')]gender=['f','m','f','m']colors={'m':'blue','f':'red'}style={}style['node_label']=['Alice','Bob','Claire','Dennis']style['node_color']=[colors[g]forgingender]style['node_opacity']=.5style['edge_curved']=.1fromnetwork2tikzimportplotplot((nodes,edges),'network.tex',**style)
    1

    现在已经可以绘制网络。

    nodes=['a','b','c','d']edges=[('a','b'),('a','c'),('c','d'),('d','b')]gender=['f','m','f','m']colors={'m':'blue','f':'red'}style={}style['node_label']=['Alice','Bob','Claire','Dennis']style['node_color']=[colors[g]forgingender]style['node_opacity']=.5style['edge_curved']=.1fromnetwork2tikzimportplotplot((nodes,edges),'network.tex',**style)
    2 examplenodes=['a','b','c','d']edges=[('a','b'),('a','c'),('c','d'),('d','b')]gender=['f','m','f','m']colors={'m':'blue','f':'red'}style={}style['node_label']=['Alice','Bob','Claire','Dennis']style['node_color']=[colors[g]forgingender]style['node_opacity']=.5style['edge_curved']=.1fromnetwork2tikzimportplotplot((nodes,edges),'network.tex',**style)3

    这将打开一个显示 网络的表示,如下所示 图:

    examplenodes=['a','b','c','d']edges=[('a','b'),('a','c'),('c','d'),('d','b')]gender=['f','m','f','m']colors={'m':'blue','f':'red'}style={}style['node_label']=['Alice','Bob','Claire','Dennis']style['node_color']=[colors[g]forgingender]style['node_opacity']=.5style['edge_curved']=.1fromnetwork2tikzimportplotplot((nodes,edges),'network.tex',**style)4 example

    注意:

    < Buff行情>

    而不是命令margins命令margin可以 使用。也可以使用 使用。有关详细信息,请参见下表。


    在中保留网络的可视表示的属性 与网络本身分离。您可以简单地设置一个python 包含要传递到绘图的关键字参数的字典 然后使用双星号(**)运算符传递 将属性设置为绘图的样式

    nodes=['a','b','c','d']edges=[('a','b'),('a','c'),('c','d'),('d','b')]gender=['f','m','f','m']colors={'m':'blue','f':'red'}style={}style['node_label']=['Alice','Bob','Claire','Dennis']style['node_color']=[colors[g]forgingender]style['node_opacity']=.5style['edge_curved']=.1fromnetwork2tikzimportplotplot((nodes,edges),'network.tex',**style)
    5

    节点选项

    nodes=['a','b','c','d']edges=[('a','b'),('a','c'),('c','d'),('d','b')]gender=['f','m','f','m']colors={'m':'blue','f':'red'}style={}style['node_label']=['Alice','Bob','Claire','Dennis']style['node_color']=[colors[g]forgingender]style['node_opacity']=.5style['edge_curved']=.1fromnetwork2tikzimportplotplot((nodes,edges),'network.tex',**style)
    6

    边缘选项

    nodes=['a','b','c','d']edges=[('a','b'),('a','c'),('c','d'),('d','b')]gender=['f','m','f','m']colors={'m':'blue','f':'red'}style={}style['node_label']=['Alice','Bob','Claire','Dennis']style['node_color']=[colors[g]forgingender]style['node_opacity']=.5style['edge_curved']=.1fromnetwork2tikzimportplotplot((nodes,edges),'network.tex',**style)
    7

    常规选项和绘图命令。

    nodes=['a','b','c','d']edges=[('a','b'),('a','c'),('c','d'),('d','b')]gender=['f','m','f','m']colors={'m':'blue','f':'red'}style={}style['node_label']=['Alice','Bob','Claire','Dennis']style['node_color']=[colors[g]forgingender]style['node_opacity']=.5style['edge_curved']=.1fromnetwork2tikzimportplotplot((nodes,edges),'network.tex',**style)
    8 example

    除了显示网络,我们还可以生成乳胶源 文件,以后可以使用和修改。这是通过添加 以'.tex'

    结尾的输出文件名
    nodes=['a','b','c','d']edges=[('a','b'),('a','c'),('c','d'),('d','b')]gender=['f','m','f','m']colors={'m':'blue','f':'red'}style={}style['node_label']=['Alice','Bob','Claire','Dennis']style['node_color']=[colors[g]forgingender]style['node_opacity']=.5style['edge_curved']=.1fromnetwork2tikzimportplotplot((nodes,edges),'network.tex',**style)
    9
    \documentclass{standalone}\usepackage{tikz-network}\begin{document}\begin{tikzpicture}\clip (0,0) rectangle (6,6);
    \Vertex[x=0.785,y=2.375,color=red,opacity=0.5,label=Alice]{a}\Vertex[x=5.215,y=5.650,color=blue,opacity=0.5,label=Bob]{b}\Vertex[x=3.819,y=0.350,color=red,opacity=0.5,label=Claire]{c}\Vertex[x=4.654,y=2.051,color=blue,opacity=0.5,label=Dennis]{d}\Edge[,bend=-8.531](a)(c)
    \Edge[,bend=-8.531](c)(d)
    \Edge[,bend=-8.531](d)(b)
    \Edge[,bend=-8.531](a)(b)
    \end{tikzpicture}\end{document}
    0

    可以生成节点和边列表,而不是tex文件 也可以与TIKZ网络库一起使用。

    \documentclass{standalone}\usepackage{tikz-network}\begin{document}\begin{tikzpicture}\clip (0,0) rectangle (6,6);
    \Vertex[x=0.785,y=2.375,color=red,opacity=0.5,label=Alice]{a}\Vertex[x=5.215,y=5.650,color=blue,opacity=0.5,label=Bob]{b}\Vertex[x=3.819,y=0.350,color=red,opacity=0.5,label=Claire]{c}\Vertex[x=4.654,y=2.051,color=blue,opacity=0.5,label=Dennis]{d}\Edge[,bend=-8.531](a)(c)
    \Edge[,bend=-8.531](c)(d)
    \Edge[,bend=-8.531](d)(b)
    \Edge[,bend=-8.531](a)(b)
    \end{tikzpicture}\end{document}
    1

    节点列表network_nodes.csv

    \documentclass{standalone}\usepackage{tikz-network}\begin{document}\begin{tikzpicture}\clip (0,0) rectangle (6,6);
    \Vertex[x=0.785,y=2.375,color=red,opacity=0.5,label=Alice]{a}\Vertex[x=5.215,y=5.650,color=blue,opacity=0.5,label=Bob]{b}\Vertex[x=3.819,y=0.350,color=red,opacity=0.5,label=Claire]{c}\Vertex[x=4.654,y=2.051,color=blue,opacity=0.5,label=Dennis]{d}\Edge[,bend=-8.531](a)(c)
    \Edge[,bend=-8.531](c)(d)
    \Edge[,bend=-8.531](d)(b)
    \Edge[,bend=-8.531](a)(b)
    \end{tikzpicture}\end{document}
    2

    edge列表network\u edges.csv

    \documentclass{standalone}\usepackage{tikz-network}\begin{document}\begin{tikzpicture}\clip (0,0) rectangle (6,6);
    \Vertex[x=0.785,y=2.375,color=red,opacity=0.5,label=Alice]{a}\Vertex[x=5.215,y=5.650,color=blue,opacity=0.5,label=Bob]{b}\Vertex[x=3.819,y=0.350,color=red,opacity=0.5,label=Claire]{c}\Vertex[x=4.654,y=2.051,color=blue,opacity=0.5,label=Dennis]{d}\Edge[,bend=-8.531](a)(c)
    \Edge[,bend=-8.531](c)(d)
    \Edge[,bend=-8.531](d)(b)
    \Edge[,bend=-8.531](a)(b)
    \end{tikzpicture}\end{document}
    3

    plot函数的详细信息

    \documentclass{standalone}\usepackage{tikz-network}\begin{document}\begin{tikzpicture}\clip (0,0) rectangle (6,6);
    \Vertex[x=0.785,y=2.375,color=red,opacity=0.5,label=Alice]{a}\Vertex[x=5.215,y=5.650,color=blue,opacity=0.5,label=Bob]{b}\Vertex[x=3.819,y=0.350,color=red,opacity=0.5,label=Claire]{c}\Vertex[x=4.654,y=2.051,color=blue,opacity=0.5,label=Dennis]{d}\Edge[,bend=-8.531](a)(c)
    \Edge[,bend=-8.531](c)(d)
    \Edge[,bend=-8.531](d)(b)
    \Edge[,bend=-8.531](a)(b)
    \end{tikzpicture}\end{document}
    4

    参数

    • 网络:网络对象

      要绘制的网络。网络可以是"cnet"、"networkx"、"igraph", "pathpy"对象,或节点列表和边列表的元组。

    • 文件名:文件、字符串或无,可选(默认为无)

      要保存的文件或文件名。文件结尾指定 输出。即文件以".tex"结尾 已创建;如果文件以.pdf结尾,则创建pdf;如果文件 以".csv"结尾,生成两个csv文件(filename_nodes.csv 和filename_edges.csv)。如果文件名是字符串的元组,则 第一个条目将用于命名节点列表和第二个条目 对于边列表;如果未定义结束和类型, 已编译并显示临时PDF文件。

    • 键入:str或none,可选(默认为none)

      输出文件的类型。如果没有通过文件名定义结尾, 输出文件的类型可以由 选择权。目前支持以下输出类型: "tex"、"pdf"、"csv"和"dat"。

    • kwds:关键字参数,可选(默认值=无属性)

      用于修改绘图外观的属性。 有关详细信息,请参见下文。

    节点样式的关键字参数

    • 节点大小:节点的大小。默认值为0.6厘米。

    • 节点颜色:节点的颜色。默认为浅蓝色。颜色可以 由通用颜色名或3元组浮点指定 (R、G和B部件的范围为0到255)。

    • 节点不透明度:节点的不透明度。默认值为1。的范围 数字介于0和1之间。其中0表示完全透明的填充 和1 A固体填充。

    • 节点标签:在节点旁边绘制的标签。

    • 节点标签位置:默认情况下,标签位置在 节点的中心。经典的tikz命令可用于更改 标签的位置。相反,使用这样的命令,位置可以是 通过输入一个介于-360和360之间的数字来确定角度。这个 原点(0)是Y轴。正数改变位置计数器 顺时针,负数则顺时针改变。

    • 节点标签距离:节点和标签之间的距离。

    • 节点标签颜色:标签颜色。

    • 节点标签大小:标签的字体大小。

    • 节点形状:顶点的形状。可能有: "圆形"、"矩形"、"三角形"和任何其他tikz形状

    • 节点样式:可以通过 选项样式。这些命令中的大多数可以在"tikz和 PGF手册"。包含命令附加选项(例如阴影= ,则该样式的参数必须介于{}方括号之间。

    • 节点层:可以将节点分配给特定层。

    • node_label_off:是抑制所有标签的布尔选项。

    • node_label_as_id:是一个布尔选项,将节点id指定为label。

    • node_math_mode:是一个布尔选项,用于转换实验室埃尔斯成 不使用$$环境的数学表达式。

    • node_pseudo:是创建伪节点的布尔选项,其中 将提供节点名称和节点坐标。

    边缘样式的关键字参数

    • 边宽度:边的宽度。默认单位为点(pt)。

    • 边颜色:边的颜色。默认为灰色。颜色可以 由通用颜色名或3元组浮点指定 (R、G和B部件的范围为0到255)。

    • 边不透明度:边的不透明度。默认值为1。的范围 数字介于0和1之间。其中0表示完全透明的填充 和1 A固体填充。

    • edge_curved:是否应弯曲边。正数 对应于沿逆时针方向弯曲的边,负值 数字对应于沿顺时针方向弯曲的边。零 表示直边。

    • 边缘标签:在边缘旁边绘制的标签。

    • 边缘标签位置:默认情况下,标签位于 线中心的两个节点。经典的tikz命令可用于 更改标签的位置。

    • 边缘标签距离:节点之间的标签位置可以是 使用"距离"选项修改。默认情况下,标签居中 两个节点之间。位置表示为 节点之间的长度,例如距离=0.7,标签放置在 顶点i边缘长度的70%。

    • 边缘标签颜色:标签的颜色。

    • 边缘标签大小:标签的字体大小。

    • edge_style:可以通过 选项样式。这些命令中的大多数可以在"tikz和 PGF手册"。包含命令附加选项(例如阴影= ,则该样式的参数必须介于{}方括号之间。

    • 边箭头大小:边的箭头大小。

    • 边箭头宽度:边上箭头的宽度。

    • 边循环大小:修改边的长度。测量值有 与单元一起插入。默认情况下,环路大小为1厘米。

    • 边环路位置:通过 围绕节点的旋转角度。原点(0)是Y轴。正的 数字逆时针改变回路位置,而负数 数字按顺时针方向更改。

    • edge_loop_shape:自循环的形状由 角度。可以通过减小或增大参数来更改形状 "循环形状"选项的值。

    • edge_directed:是一个布尔选项,它将边转换为directed 箭头。如果网络已定义为定向网络,则此选项 不需要,除非关闭一条或多条边的方向。

    • edge_math_mode是一个布尔选项,它将标签转换为 不使用$$环境的数学表达式。

    • edge_not_in_bg默认情况下,边缘绘制在背景层上 在tikz的照片上。即在边缘之后创建的对象 也出现在上面。若要关闭此选项,请在背景中选择"边不在" 必须启用。

    布局样式的关键字参数

    \documentclass{standalone}\usepackage{tikz-network}\begin{document}\begin{tikzpicture}\clip (0,0) rectangle (6,6);
    \Vertex[x=0.785,y=2.375,color=red,opacity=0.5,label=Alice]{a}\Vertex[x=5.215,y=5.650,color=blue,opacity=0.5,label=Bob]{b}\Vertex[x=3.819,y=0.350,color=red,opacity=0.5,label=Claire]{c}\Vertex[x=4.654,y=2.051,color=blue,opacity=0.5,label=Dennis]{d}\Edge[,bend=-8.531](a)(c)
    \Edge[,bend=-8.531](c)(d)
    \Edge[,bend=-8.531](d)(b)
    \Edge[,bend=-8.531](a)(b)
    \end{tikzpicture}\end{document}
    5
    • 布局:dict或string,可选(默认值=无) 在二维平面上具有节点位置的字典。这个 dict的键值表示节点id,而 表示坐标的元组(例如n=(x,y))。最初的 布局可以是plac在二维平面上的任意位置编辑。

      可以定义用于布局的算法,而不是字典 通过字符串值。目前,支持的是:

      • 随机布局,其中节点均匀地随机放置在 单位平方。此算法可以使用关键字"random"启用, "随机"、"随机"或"无"

      • Fruchterman-Reingold力定向算法。在这个算法中, 节点由钢圈表示,边缘是弹簧 他们。吸引力类似于弹簧力和 斥力类似于电力。基本思想是 通过移动节点和改变 他们之间的力量。此算法可以使用 关键字:"Fruchterman reingold"、"Fruchterman_reingold"、"Fr", "弹簧布局","弹簧布局","fr"

    <表><广告>算法 关键字 < /广告><正文>随机随机,随机,随机,无弗鲁赫特曼·雷戈尔德弗鲁克特曼·雷金德,弗鲁克特曼·雷金德,法国弹簧布局,弹簧布局,fr
    • 强制:浮动,可选(默认值=无) 节点间的最佳距离。如果没有,则距离设置为 1/sqrt(n),其中n是节点数。增加此值以移动 节点距离更远。

    • 位置:dict或none可选(默认值为none) 节点作为字典的初始位置,节点作为键和值 作为一个坐标列表或元组。如果没有,则使用随机初始值 位置。

    • 已修复:列表或无,可选(默认为无) 在初始位置保持固定的节点。

    • 迭代:int,可选(默认值=50) 最大迭代次数

    • 阈值:浮动,可选(默认值=1e-4) 节点位置更改中相对错误的阈值。迭代 如果错误低于此阈值,则停止。

    • 权重:字符串或无,可选(默认值=无) 保存用于边的数值的边属性 重量。如果没有,则所有边权重都为1。

    • 维度:int,可选(默认值=2) 布局尺寸。目前,仅支持二维绘图。

    • seed:int或none,可选(默认值为none) 设置确定性节点布局的随机状态。如果是int,seed是 随机数生成器使用的种子,如果没有,则为随机种子 使用由numpy创建的随机数生成器。

    常规选项的关键字参数

    • 单位:字符串或字符串元组,可选(默认值=('cm','pt')) 默认情况下,所有大小值都基于cm,所有线宽都是 以磅为单位定义。使用此选项,输入单位可以是 改变。当前支持的是:像素"px",点"pt", 毫米'mm',厘米'cm'。如果一个值输入为 所有输入必须用这个单位来定义。如果一个单位元组 在给定的情况下,大小由第一个条目定义 第二个条目。

    • 页边距:none、int、float或dict,可选(默认值为none) 边距定义画布边框的"空"空间。如果没有 边距已定义,边距将根据最大值计算 节点大小,以避免剪切节点。如果单个int或float是 使用此距离定义所有边距。定义不同的边距 所有大小的字典的大小 {'to p':2,'left':1,'bottom':2,'right':.5}必须使用。

    • 画布:无,int或float元组,可选(默认值=(6,6)) 画布或图形大小定义绘图的大小。输入的值为 一对怒族mber,其中第一个数字是图形的宽度,而 第二个数字是数字的高度。如果选项units不是 所用尺寸以厘米为单位。默认情况下,画布为6cm x 6cm。

    • 保持纵横比:bool,可选(默认值为true) 定义是否保留当前布局的纵横比。如果 false,将重新缩放布局以完全适应 画布中的可用区域(即移除的边距)。如果true,则 保持布局的原始纵横比 在画布中居中。

    • 独立的:bool,可选(默认值为true) 如果此选项为真,将创建一个独立的乳胶文件。即 可以从此输出文件编译图。如果standalone为false, 只有tikz环境存储在tex文件中,并且可以导入 在现有的tex文件中。

    • clean:bool,可选(默认值为true) 编译期间创建的非pdf文件是否应 删除。

    • 清除纹理:bool,可选(默认值为true) 同时删除生成的tex文件。

    • 编译器str,可选(默认值=无) 要使用的乳胶编译器的名称。如果没有,cnet将选择 自己安装一个。从latexmk开始,然后从pdflatex

    • 编译器参数列表,可选(默认值=无) 应传递给乳胶编译器的额外参数。如果这是 无默认为空列表。

    • 无提示:bool,可选(默认值为true) 是否隐藏编译器输出。

    关键字命名约定

    在样式字典中,可以使用多个关键字来寻址 属性。这些关键字将转换为唯一的关键字, 在剩余代码中使用。这允许保留在 igraph

    <表><广告>键 其他有效键 < /广告><正文>节点顶点,v,n边缘链接,l,e利润率利润率画布bbox,数字大小单位单位固定固定节点,固定顶点,固定值,固定值位置初始位置,节点位置顶点位置,n位置,V_位置

    待办事项

    • []添加多层处理程序

    更改日志

    <表><广告>版本 日期 更改 < /广告><正文>0.1.02018年5月21日对github的初始提交0.1.12018年5月22日对pypi的初始提交0.1.22018年5月27日修复了Windows编译问题0.1.32018年7月17日修正了坐标为零时的布局问题0.1.42018年7月29日添加了一些布局算法0.1.52018年7月30日允许将多个网络添加到同一绘图0.1.62018年8月7日一些较小的错误修复程序0.1.72018年11月05日 修复了pathpy和csv导出的错误0.1.82018年11月7日修复了cnet和pathpy依赖关系

    欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


热门话题
java如何在数据库中存储工作日数据以及开始时间和结束时间?   mysql Java JPA内部联接查询不起作用   java MQ消息在不同的客户端应用程序中显示不同   javascript如何在xPage上提高typeAhead性能?   java在尝试保存EditText时无法暂停   mongodb“未能使用带参数的构造函数NO_构造函数实例化java.util.List”,   java如何修改使IllegalArgumentException:列“\u id”不存在的游标   转换Android。网Uri到Java。伊奥。输入流   java NetBeans RCP居中弹出窗口无法按预期工作   java将sql开发人员与netbeans连接起来   带有xmldsig签名的java JAXB编组   java ORACLE JDBC批处理执行不会返回受影响行的实际计数   java无法理解如何在由swagger自动生成的jaxrs服务器中访问请求头   java如何处理漏洞CVE20181258,同时将Spring安全版本5与外部客户端(最新版本)一起使用?   JavaSpring数据JPA存储库多租户单模式技术