0%

在我们完成一棵树的构建之后,如果我们想要看这棵树的结构,不像数组或者 List 等数据结构,我们可以非常方便地用各种方式将其中的所有元素打印出来,对于树而言,这个过程要麻烦得多,我们可以用各种遍历方式得到这棵树的结构,但是终究还是不够直观。

如果我们可以按照树的结构,将其打印出来就好了,那么本文就是一种实现这个目标的思路以供参考。

阅读全文 »

背景

近期在重构项目中,由于部分查询的数据库配置是根据不同的用户进行个性化配置的,所以在查询过程中,存在 MyBatis 多源数据库切换问题。

原项目实现方式为,在 MyBatis 查询前,切换到个性化配置,查询完毕后,再切换回默认数据库配置。

现在希望通过注解标注形式,进行重构代码。

阅读全文 »

获取内网IP地址

function getIpAddress() {
    window.RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;
    var pc = new RTCPeerConnection({
        iceServers: []
    }),
    noop = function() {};
    pc.createDataChannel(''); //create a bogus data channel 
    pc.createOffer(pc.setLocalDescription.bind(pc), noop); // create offer andsetlocaldescription
    pc.onicecandidate = function(ice) {
        if (ice && ice.candidate && ice.candidate.candidate) {
            var myIP = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/.exec(ice.candidate.candidate)[1];
            console.log('my IP: ', myIP); //【注:Chrome浏览器下ice.candidate.address也可以拿到值,火狐浏览器不可以】
            pc.onicecandidate = noop;
			return myIP;
        }
    };
	return null;
}
阅读全文 »