目录
一、循环依赖问题
问题场景
在templateServiceImpl中注入了fieldService,同时又在fieldServiceImpl中注入了templateService,产生了循环依赖问题。
问题分析
我的templateServiceImpl注入了fieldService,同时又在fieldServiceImpl中注入了templateService,工厂在创建Bean时不知道先创建哪一个,导致发生循环依赖问题。
问题解决
在application.yml文件中添加spring.main.allow-circular-references注解。
相关面试题
参考链接:循环依赖如何解决?
二、Ztree右键添加菜单
准备右键菜单
<!--右键出来的功能菜单-->
<div id="rMenu">
<li>
<a href="javascript:void(0)" class="list-group-item"
onclick="copyTem()">复制</a>
</li>
</div>
ry-ui.js中添加回调函数
beforeRightClick: options.beforeRightClick, // 用于捕获右键之后的事件回调函数
onRightClick: options.onRightClick
html中调用刚刚的回调函数
编写回调函数具体操作
function onRightClick(event, treeId, treeNode) {
debugger;
if (treeNode.parentId == 0) {
//显示右侧菜单
copyTemplateId = treeNode.id;
/*$("#rMenu").show();
alert('hhh');*/
if (!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) {
showRMenu("root", event.clientX, event.clientY);
} else if (treeNode && !treeNode.noR) {
showRMenu("node", event.clientX, event.clientY);
}
}
}
//显示右键菜单
function showRMenu(type, x, y) {
$("#rMenu").show();
$("#rMenu").css({"top": y + "px", "left": x + "px", "visibility": "visible"}); //设置右键菜单的位置、可见
$("body").bind("mousedown", onBodyMouseDown);
}
//隐藏右键菜单
function hideRMenu() {
$("#rMenu").css({"visibility": "hidden"}); //设置右键菜单不可见
$("body").unbind("mousedown", onBodyMouseDown);
}
//鼠标按下事件
function onBodyMouseDown(event) {
if (!(event.target.id == "rMenu" || $(event.target).parents("#rMenu").length > 0)) {
// $("#rMenu").hide();
$("#rMenu").css({ "visibility": "hidden"});
}
}
//复制按钮调用接口
function copyTem() {
var request = {
url: prefix + "/copyTemplate/" + copyTemplateId,
type: "post",
dataType: "json",
success: function (result) {
queryTemplateTree();
$.modal.alert(result.content);
}
};
$.ajax(request);
}