string(14) "127.0.0.1:9200"
URL: http://127.0.0.1:9200/likecs_art_db/_search
REQUEST:
Array
(
[query] => Array
(
[match] => Array
(
[text] => Array
(
[query] => java-动态代理
)
)
)
[highlight] => Array
(
[fields] => Array
(
[text] => stdClass Object
(
)
)
[pre_tags] => #em#
[post_tags] => #/em#
)
[size] => 8
[from] => 0
)
RESPONSE:string(7118) "{"took":15,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":10000,"relation":"gte"},"max_score":22.69352,"hits":[{"_index":"likecs_art_db","_type":"_doc","_id":"80313","_score":22.69352,"_source":{"id":"80313","text":"java-\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"zhh19981104","tagsname":"","tagsid":"[]","catesname":"","catesid":"[]","createtime":"1573120877"},"highlight":{"text":["#em#java#/em#-#em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"119399","_score":22.69352,"_source":{"id":"119399","text":"Java\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"xxkj","tagsname":"","tagsid":"[]","catesname":"","catesid":"[]","createtime":"1605012929"},"highlight":{"text":["#em#Java#/em##em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"13370","_score":22.69352,"_source":{"id":"13370","text":"Java\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"Finley","tagsname":"","tagsid":"[]","catesname":"","catesid":"[]","createtime":"1523094168"},"highlight":{"text":["#em#Java#/em##em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"130658","_score":22.69352,"_source":{"id":"130658","text":"java\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"night-rainy","tagsname":null,"tagsid":"","catesname":null,"catesid":"","createtime":"1640722333"},"highlight":{"text":["#em#java#/em##em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"678094","_score":22.69352,"_source":{"id":"678094","text":"java\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"XiOrang","tagsname":null,"tagsid":"","catesname":null,"catesid":"","createtime":"1635834657"},"highlight":{"text":["#em#java#/em##em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"691295","_score":22.69352,"_source":{"id":"691295","text":"Java\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"mengd","tagsname":"","tagsid":"","catesname":null,"catesid":"","createtime":"1635933313"},"highlight":{"text":["#em#Java#/em##em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"905012","_score":22.69352,"_source":{"id":"905012","text":"java \u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"Ehtan","tagsname":"","tagsid":"","catesname":null,"catesid":"","createtime":"1638463417"},"highlight":{"text":["#em#java#/em# #em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"203346024","_score":22.69352,"_source":{"id":"203346024","text":"Java \u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"cncsl","tagsname":"","tagsid":"[]","catesname":"Java","catesid":"[\"107\"]","createtime":"1642658448"},"highlight":{"text":["#em#Java#/em# #em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}}]}}"
string(14) "127.0.0.1:9200"
URL: http://127.0.0.1:9200/likecs_art_db/_search
REQUEST:Array
(
[query] => Array
(
[match] => Array
(
[text] => Array
(
[query] => java-动态代理
)
)
)
[highlight] => Array
(
[fields] => Array
(
[text] => stdClass Object
(
)
)
[pre_tags] => #em#
[post_tags] => #/em#
)
[size] => 8
[from] => 8
)
RESPONSE:string(7898) "{"took":16,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":10000,"relation":"gte"},"max_score":22.69352,"hits":[{"_index":"likecs_art_db","_type":"_doc","_id":"203383995","_score":22.665916,"_source":{"id":"203383995","text":"java\u52a8\u6001\u4ee3\u7406\u4e0e\u9759\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"","tagsname":null,"tagsid":"","catesname":null,"catesid":"","createtime":"1632421419"},"highlight":{"text":["#em#java#/em##em#动#/em##em#态#/em##em#代#/em##em#理#/em#与静#em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"80435","_score":22.088257,"_source":{"id":"80435","text":"java\u4e2d\u7684\u9759\u6001\u4ee3\u7406\u3001jdk\u52a8\u6001\u4ee3\u7406\u548ccglib\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"yanggb","tagsname":"","tagsid":"","catesname":"","catesid":"","createtime":"1573194674"},"highlight":{"text":["#em#java#/em#中的静#em#态#/em##em#代#/em##em#理#/em#、jdk#em#动#/em##em#态#/em##em#代#/em##em#理#/em#和cglib#em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"8540","_score":22.088257,"_source":{"id":"8540","text":"017 Java\u4e2d\u7684\u9759\u6001\u4ee3\u7406\u3001JDK\u52a8\u6001\u4ee3\u7406\u3001cglib\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"nnngu","tagsname":"","tagsid":"[]","catesname":"Java\u57fa\u7840","catesid":"[\"275\"]","createtime":"1519461207"},"highlight":{"text":["017 #em#Java#/em#中的静#em#态#/em##em#代#/em##em#理#/em#、JDK#em#动#/em##em#态#/em##em#代#/em##em#理#/em#、cglib#em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"203317992","_score":22.062338,"_source":{"id":"203317992","text":"Java\u7684\u9759\u6001\u4ee3\u7406\u548c\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"","tagsname":null,"tagsid":"","catesname":null,"catesid":"","createtime":"1641164200"},"highlight":{"text":["#em#Java#/em#的静#em#态#/em##em#代#/em##em#理#/em#和#em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"73151","_score":21.753267,"_source":{"id":"73151","text":"java \u4ee3\u7406\u6a21\u5f0f-\u9759\u6001\u4ee3\u7406\u4e0e\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"arebirth","tagsname":"","tagsid":"[]","catesname":"","catesid":"[]","createtime":"1568123839"},"highlight":{"text":["#em#java#/em# #em#代#/em##em#理#/em#模式-静#em#态#/em##em#代#/em##em#理#/em#与#em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"95942","_score":21.749025,"_source":{"id":"95942","text":"Java\u7684\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"leyvan","tagsname":"","tagsid":"[]","catesname":"","catesid":"[]","createtime":"1584341126"},"highlight":{"text":["#em#Java#/em#的#em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"17950","_score":21.749025,"_source":{"id":"17950","text":"Java\u52a8\u6001\u4ee3\u7406\uff08\u4e00\uff09","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"liaoweipeng","tagsname":"","tagsid":"[]","catesname":"Java","catesid":"[\"107\"]","createtime":"1526303233"},"highlight":{"text":["#em#Java#/em##em#动#/em##em#态#/em##em#代#/em##em#理#/em#(一)"]}},{"_index":"likecs_art_db","_type":"_doc","_id":"43046","_score":21.749025,"_source":{"id":"43046","text":"Java\u7684\u52a8\u6001\u4ee3\u7406","intro":"\u76ee\u5f55\n\nECharts\n\u5f02\u6b65\u52a0\u8f7d\n\n\n\nECharts\r\n\u6570\u636e\u53ef\u89c6\u5316\u5728\u8fc7\u53bb\u51e0\u5e74\u4e2d\u53d6\u5f97\u4e86\u5de8\u5927\u8fdb\u5c55\u3002\u5f00\u53d1\u4eba\u5458\u5bf9\u53ef\u89c6\u5316\u4ea7\u54c1\u7684\u671f\u671b\u4e0d\u518d\u662f\u7b80\u5355\u7684\u56fe\u8868\u521b\u5efa\u5de5\u5177\uff0c\u800c\u662f\u5728\u4ea4\u4e92\u3001\u6027\u80fd\u3001\u6570\u636e\u5904\u7406\u7b49\u65b9\u9762\u6709\u66f4\u9ad8\u7684\u8981\u6c42\u3002\r\nchart.setOption({\r\n color: [\r\n ","username":"zhizaixingzou","tagsname":"","tagsid":"[]","catesname":"Java\u8bed\u8a00\u57fa\u7840\u53ca\u4e13\u9898","catesid":"[\"5823\"]","createtime":"1544100370"},"highlight":{"text":["#em#Java#/em#的#em#动#/em##em#态#/em##em#代#/em##em#理#/em#"]}}]}}"
string(14) "127.0.0.1:9200"
URL: http://192.168.101.128/searchcore/index.php/cihere_cn_db/_search
REQUEST:Array
(
[query] => Array
(
[match] => Array
(
[title] => Array
(
[query] => java-动态代理
)
)
)
[highlight] => Array
(
[fields] => Array
(
[title] => stdClass Object
(
)
)
[pre_tags] => #em#
[post_tags] => #/em#
)
[from] => 0
)
RESPONSE:bool(false)
string(14) "127.0.0.1:9200"
URL: http://127.0.0.1:9200/likecs_down_db/_search
REQUEST:Array
(
[query] => Array
(
[bool] => Array
(
[must] => Array
(
[0] => Array
(
[match] => Array
(
[title] => Array
(
[query] => java-动态代理
)
)
)
)
[must_not] => Array
(
[0] => Array
(
[term] => Array
(
[cate1] => 电子书籍
)
)
)
)
)
[highlight] => Array
(
[fields] => Array
(
[title] => stdClass Object
(
)
)
[pre_tags] => #em#
[post_tags] => #/em#
)
[size] => 5
[from] => 0
)
RESPONSE:string(2935) "{"took":13,"timed_out":false,"_shards":{"total":1,"successful":1,"skipped":0,"failed":0},"hits":{"total":{"value":8926,"relation":"eq"},"max_score":14.396936,"hits":[{"_index":"likecs_down_db","_type":"_doc","_id":"52532","_score":14.396936,"_source":{"id":"52532","title":"JavaScript Ajax\u52a8\u6001\u8d2d\u7269\u8f66\u4ee3\u7801","spidertime":"1623057187","contenttime":"1624516178","pageimage":"https:\/\/img.jbzj.com\/do\/uploads\/userup\/1002\/12110GS2Q.gif","tag":"javascript|ajax|\u52a8\u6001\u8d2d\u7269\u8f66","cate1":"js\u6846\u67b6","cate2":"ajax\/javascript","attr1":"22KB"},"highlight":{"title":["JavaScript Ajax#em#动#/em##em#态#/em#购物车#em#代#/em#码"]}},{"_index":"likecs_down_db","_type":"_doc","_id":"59363","_score":13.880903,"_source":{"id":"59363","title":"java\u5b9e\u73b0\u5185\u5b58\u52a8\u6001\u5206\u914d word\u7248","spidertime":"1623066705","contenttime":"1671749138","pageimage":"https:\/\/img.jbzj.com\/do\/uploads\/litimg\/160620\/1035415Q3V.png","tag":"java\u5185\u5b58\u52a8\u6001\u5206\u914d|Java","cate1":"\u7535\u5b50\u4e66\u7c4d","cate2":"\u7f16\u7a0b\u5f00\u53d1","cate3":"java\u7535\u5b50\u4e66","attr1":"67.8KB"},"highlight":{"title":["#em#java#/em#实现内存#em#动#/em##em#态#/em#分配 word版"]}},{"_index":"likecs_down_db","_type":"_doc","_id":"72317","_score":13.291586,"_source":{"id":"72317","title":"JAVA\u52a8\u6001\u751f\u6210word\u548cpdf \u4e2d\u6587WORD\u7248","spidertime":"1623128463","contenttime":"1676699327","pageimage":"https:\/\/img.jbzj.com\/do\/uploads\/litimg\/161119\/0T602592610.png","tag":"Java|\u52a8\u6001\u751f\u6210|Word|pdf","cate1":"\u7535\u5b50\u4e66\u7c4d","cate2":"\u7f16\u7a0b\u5f00\u53d1","cate3":"java\u7535\u5b50\u4e66","attr1":"10KB"},"highlight":{"title":["#em#JAVA#/em##em#动#/em##em#态#/em#生成word和pdf 中文WORD版"]}},{"_index":"likecs_down_db","_type":"_doc","_id":"53272","_score":13.063127,"_source":{"id":"53272","title":"jquery+css3\u52a8\u6001\u5706\u5708\u8fd0\u52a8\u80cc\u666f\u7279\u6548\u4ee3\u7801","spidertime":"1623058258","contenttime":"1675823074","pageimage":"https:\/\/img.jbzj.com\/do\/uploads\/litimg\/131218\/104RH1H51.gif","tag":"jquery|CSS3|\u52a8\u6001\u8fd0\u52a8|\u5706\u5708\u80cc\u666f","cate1":"js\u6846\u67b6","cate2":"jQuery","attr1":"26KB"},"highlight":{"title":["jquery+css3#em#动#/em##em#态#/em#圆圈运#em#动#/em#背景特效#em#代#/em#码"]}},{"_index":"likecs_down_db","_type":"_doc","_id":"397","_score":13.063127,"_source":{"id":"397","title":"\u767e\u5ea6LOGO\u52a8\u6001\u821e\u52a8\u7684\u9f99\u6548\u679c\u7684\u4ee3\u7801","spidertime":"1622859823","contenttime":"1677299768","pageimage":"https:\/\/img.jbzj.com\/do\/uploads\/litimg\/120509\/094KGE961.gif","tag":"\u9f99|\u52a8\u6001","cate1":"\u5e7f\u544a\u4ee3\u7801","cate2":"\u5176\u4ed6\u4ee3\u7801","attr1":"90KB"},"highlight":{"title":["百度LOGO#em#动#/em##em#态#/em#舞#em#动#/em#的龙效果的#em#代#/em#码"]}}]}}"
java-动态代理 - 爱码网
一、Java自带的动态代理
1、概述:
JDK动态代理主要涉及java.lang.reflect包下的Proxy类和InvocationHandler接口。 JDK代理实现的三个要点:
通过java.lang.reflect.Proxy类来动态生成代理类
代理类要实现InvocationHandler接口
JDK代理只能基于接口进行动态代理
2、代码结构

3、Jdk_ProxyService
package com.turtle.jdk;
public interface Jdk_ProxyService {
public void doUpdate();
public void doSave(String name);
public String doFind();
}
4、Jdk_ProxyServiceImpl
package com.turtle.jdk;
/**
* JDk的动态代理一定要满足实现接口的步骤
*/
public class Jdk_ProxyServiceImpl implements Jdk_ProxyService {
@Override
public void doUpdate() {
System.out.println("进行更新操作");
}
@Override
public void doSave(String name) {
System.out.println("进行保存操作==="+name);
}
@Override
public String doFind() {
System.out.println("进行查询操作");
return "SUCCESS";
}
}
5、Jdk_MyInvocationHandler
package com.turtle.jdk;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
// 代理类
public class Jdk_MyInvocationHandler implements InvocationHandler {
// 这个就是我们要代理的真实对象
private Object target;
// 构造方法,给我们要代理的真实对象赋初值
public Jdk_MyInvocationHandler(Object target) {
this.target = target;
}
/*
*invoke方法方法参数解析
*Object proxy:指被代理的对象。
*Method method:要调用的方法
*Object[] args:方法调用时所需要的参数
*InvocationHandler接口的子类可以看成代理的最终操作类。
*/
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
System.out.println("开始进行代理的增强");
Object result= null;
try{
// 利用反射动态的来反射方法,这就是动态代理和静态代理的区别
result = method.invoke(target,args);
}catch (Exception e){
e.printStackTrace();
}finally {
System.out.println("代理的增强完毕了");
}
return result;
}
}
6、TestJdk
package com.turtle.jdk;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class TestJdk {
public static void main(String[] args) {
// 我们要代理的真实对象
Jdk_ProxyService jdkProxyService = new Jdk_ProxyServiceImpl();
// 我们要代理哪个真实对象,就将该对象传进去
InvocationHandler invocationHandler = new Jdk_MyInvocationHandler(jdkProxyService);
/*
*newProxyInstance方法参数解析
*ClassLoader loader:类加载器
*Class<?>[] interfaces:得到全部的接口
*InvocationHandler h:得到InvocationHandler接口的子类实例
*/
Jdk_ProxyService jdkProxyServiceProxy = (Jdk_ProxyService)Proxy.newProxyInstance(jdkProxyService.getClass().getClassLoader(),jdkProxyService.getClass().getInterfaces(),invocationHandler);
//jdkProxyServiceProxy.doFind();
// jdkProxyServiceProxy.doSave("测试");
jdkProxyServiceProxy.doUpdate();
}
}
二、使用CgliB来完成动态代理
1、概述:
使用CGLib实现动态代理,完全不受代理类必须实现接口的限制,而且CGLib底层采用ASM字节码生成框架,使用字节码技术生成代理类,比使用Java反射效率要高。唯一需要注意的是,CGLib不能对声明为final的方法进行代理,因为CGLib原理是动态生成被代理类的子类。
2、代码结构、Jar包:

3、Cglib_ProxyService,被代理对象
package com.turtle.cglib;
public class Cglib_ProxyService {
/**
* 该方法不能被子类覆盖,Cglib是无法代理final修饰的方法的
*/
public final void doDel(){
System.out.println("正在进行删除操作");
}
/**
* 有返回值、无参数
* @return
*/
public String doFind(){
System.out.println("正在进行查询操作");
return "SUCCESS";
}
/**
* 有参数、有返回值
* @param name
* @return
*/
public String doSave(String name){
System.out.println("正在进行保存操作"+name);
return "SUCCESS";
}
/**
* 无参数、无返回值
*/
public void doUpdate(){
System.out.println("正在进行修改操作");
}
}
4、Cglib_MyMethodInterceptor,我们自定义的代理,对对象做增强操作
package com.turtle.cglib;
import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;
import java.lang.reflect.Method;
/**
* 自己建立的AOP注入
*/
public class Cglib_MyMethodInterceptor implements MethodInterceptor {
/**
* @param o cglib生成的代理对象
* @param method 被代理对象方法
* @param objects 方法入参
* @param methodProxy 代理方法
* @return
* @throws Throwable
*/
@Override
public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
String result = null;
// 通过方法签名来确定我们需要对哪些方法做增强操作
if(methodProxy.getSignature().getName() == "doUpdate"){
System.out.println("对doUpdate方法做前置增强");
methodProxy.invokeSuper(o,objects);
System.out.println("对doUpdate方法做后置增强");
}
if(methodProxy.getSignature().getName() == "doSave"){
System.out.println("对doSave方法做前置增强");
methodProxy.invokeSuper(o,objects);
System.out.println("对doSave方法做后置增强");
}
if(methodProxy.getSignature().getName() == "doDel"){
System.out.println("对doDel方法做前置增强");
methodProxy.invokeSuper(o,objects);
System.out.println("对doDel方法做后置增强");
}
if(methodProxy.getSignature().getName() == "doFind"){
System.out.println("对doFind方法做前置增强");
result = methodProxy.invokeSuper(o,objects).toString();
System.out.println("对doFind方法做后置增强");
}
return result;
}
}
5、Cglib_ProxyFactory,创建一个工厂来实例化我们的代理。
package com.turtle.cglib;
import net.sf.cglib.proxy.Enhancer;
/**
* 将用来创建代理对象的操作放到简单工厂里面来实现
*/
public class Cglib_ProxyFactory<T> {
public T createProxyObj(T obj){
// 通过CGLIB动态代理获取代理对象的过程
Enhancer enhancer = new Enhancer();
// 设置enhancer对象的父类
enhancer.setSuperclass(obj.getClass());
// 设置enhancer的回调对象
enhancer.setCallback(new Cglib_MyMethodInterceptor());
// 创建代理对象
return (T)enhancer.create();
}
}
6、TestCglib,测试结果。
package com.turtle.cglib;
public class TestCglib {
public static void main(String[] args) {
// 取得工厂对象
Cglib_ProxyFactory<Cglib_ProxyService> cglibProxyFactory = new Cglib_ProxyFactory<>();
// 利用工厂来创建代理对象
Cglib_ProxyService cglibProxyService = cglibProxyFactory.createProxyObj(new Cglib_ProxyService());
// 通过代理对象调用目标方法
// 无参数、无返回值的方法
// cglibProxyService.doUpdate();
// 有参数的方法
// cglibProxyService.doSave("保存");
// 有返回值的方法
// String result = cglibProxyService.doFind();
// System.out.println(result);
// 被final修饰的方法
cglibProxyService.doDel();
}
}
三、总结
相关文章:
-
2021-09-24
-
2019-11-08
-
2018-02-24
-
2022-01-03
-
2019-09-10
-
2020-03-16
-
2018-05-14
猜你喜欢
-
2020-11-10
-
2021-12-29
-
2021-12-03
-
2022-01-20
相关资源
-
下载
2021-06-24
-
下载
2022-12-23
-
下载
2023-02-18
-
下载
2023-02-08
-
下载
2023-02-25