{"id":851,"date":"2013-12-14T10:32:55","date_gmt":"2013-12-14T10:32:55","guid":{"rendered":"http:\/\/blog.zhukunqian.com\/?p=851"},"modified":"2013-12-14T10:32:55","modified_gmt":"2013-12-14T10:32:55","slug":"%e8%bf%90%e8%a1%8c%e6%97%b6%e8%8e%b7%e5%be%97%e6%89%80%e6%9c%89%e7%9a%84%e7%b1%bb","status":"publish","type":"post","link":"https:\/\/blog.zhukunqian.com\/?p=851","title":{"rendered":"\u8fd0\u884c\u65f6\u83b7\u5f97\u6240\u6709\u7684\u7c7b"},"content":{"rendered":"<p>1\u3001\u5982\u679c\u4f7f\u7528spring\uff0c \u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u65b9\u5f0f\u83b7\u5f97spring context\u4e2d\u7684\u6240\u6709\u7684\u7c7b\uff1a<\/p>\n<pre class=\"brush: java; gutter: true\">public class GameReflect implements ApplicationContextAware {\r\n\tpublic ApplicationContext applicationContext;\r\n\r\n@Override\r\n\tpublic void setApplicationContext(ApplicationContext applicationContext)\r\n\t\t\tthrows BeansException {\r\n\t\tthis.applicationContext = applicationContext;\r\n\t}\r\npublic void getAllClass(){\r\n        applicationContext.getBeansOfType(GameBaseAction.class);\r\n}\r\n}<\/pre>\n<p>2\u3001\u9664\u6b64\u4e4b\u5916\uff0c\u4e5f\u53ef\u4ee5\u4ececlassloader\u4e2d\u4f7f\u7528\u4e00\u79cdhack\u65b9\u5f0f\u83b7\u5f97\u6240\u6709\u7684\u7c7b:<\/p>\n<pre class=\"brush: java; gutter: true\">package cn.joylab.service;\r\n\r\nimport java.lang.reflect.Field;\r\nimport java.util.Vector;\r\n\r\npublic class ClassLoaderTest extends GameBaseManagerTestCase {\r\n\t@org.junit.Test\r\n\tpublic void test1() {\r\n\t\ttry {\r\n\t\t\tField f = ClassLoader.class.getDeclaredField(&quot;classes&quot;);\r\n\t\t\tf.setAccessible(true);\r\n\r\n\t\t\tClassLoader classLoader = Thread.currentThread().getContextClassLoader();\r\n\r\n\t\t\tVector&lt;Class&gt; classes = (Vector&lt;Class&gt;) f.get(classLoader);\r\n\t\t\tfor (Class c : classes) {\r\n\t\t\t\tSystem.out.println(c);\r\n\t\t\t}\r\n\t\t} catch (Exception e) {\r\n\t\t\te.printStackTrace();\r\n\t\t}\r\n\t}\r\n\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1\u3001\u5982\u679c\u4f7f\u7528spring\uff0c \u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u65b9\u5f0f\u83b7\u5f97spring context\u4e2d\u7684 &hellip;<\/p>\n<p class=\"read-more\"><a href=\"https:\/\/blog.zhukunqian.com\/?p=851\">\u7ee7\u7eed\u9605\u8bfb &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/posts\/851"}],"collection":[{"href":"https:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.zhukunqian.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=851"}],"version-history":[{"count":2,"href":"https:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/posts\/851\/revisions"}],"predecessor-version":[{"id":853,"href":"https:\/\/blog.zhukunqian.com\/index.php?rest_route=\/wp\/v2\/posts\/851\/revisions\/853"}],"wp:attachment":[{"href":"https:\/\/blog.zhukunqian.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.zhukunqian.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.zhukunqian.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}