[{"title":"( 31 个子文件 24KB ) ioc-aop:看完spring的源码后,自己手动实现一个类似Spring的IOC和AOP功能的演示,代码注释详细,项目可以直接运行-看","children":[{"title":"ioc-aop-master","children":[{"title":"pom.xml <span style='color:#111;'> 3.77KB </span>","children":null,"spread":false},{"title":"src","children":[{"title":"test","children":[{"title":"java","children":[{"title":"com","children":[{"title":"learn","children":[{"title":"AppTest.java <span style='color:#111;'> 320B </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":"main","children":[{"title":"resources","children":[{"title":"scan-package.properties <span style='color:#111;'> 25B </span>","children":null,"spread":false}],"spread":true},{"title":"java","children":[{"title":"com","children":[{"title":"mySpring","children":[{"title":"aop","children":[{"title":"aspect","children":[{"title":"AfterAspect.java <span style='color:#111;'> 262B </span>","children":null,"spread":false},{"title":"BeforeAspect.java <span style='color:#111;'> 266B </span>","children":null,"spread":false},{"title":"SurroundAspect.java <span style='color:#111;'> 647B </span>","children":null,"spread":false}],"spread":true},{"title":"ProxyFactory.java <span style='color:#111;'> 1.29KB </span>","children":null,"spread":false},{"title":"annotation","children":[{"title":"Ignore.java <span style='color:#111;'> 233B </span>","children":null,"spread":false},{"title":"PointCut.java <span style='color:#111;'> 273B </span>","children":null,"spread":false}],"spread":true},{"title":"Execute.java <span style='color:#111;'> 1.53KB </span>","children":null,"spread":false},{"title":"ProxyController.java <span style='color:#111;'> 2.88KB </span>","children":null,"spread":false},{"title":"advice","children":[{"title":"Advice.java <span style='color:#111;'> 107B </span>","children":null,"spread":false},{"title":"SurroundAdvice.java <span style='color:#111;'> 167B </span>","children":null,"spread":false},{"title":"AfterAdvice.java <span style='color:#111;'> 143B </span>","children":null,"spread":false},{"title":"BeforeAdvice.java <span style='color:#111;'> 147B </span>","children":null,"spread":false}],"spread":false},{"title":"AopProxy.java <span style='color:#111;'> 1.19KB </span>","children":null,"spread":false}],"spread":true},{"title":"Application.java <span style='color:#111;'> 1.32KB </span>","children":null,"spread":false},{"title":"autowired","children":[{"title":"BeanFactory.java <span style='color:#111;'> 1.43KB </span>","children":null,"spread":false},{"title":"MyAutowired.java <span style='color:#111;'> 257B </span>","children":null,"spread":false},{"title":"ClasspathPackageScanner.java <span style='color:#111;'> 4.11KB </span>","children":null,"spread":false},{"title":"AutomaticInjection.java <span style='color:#111;'> 4.65KB </span>","children":null,"spread":false},{"title":"MyBean.java <span style='color:#111;'> 246B </span>","children":null,"spread":false},{"title":"GetClass.java <span style='color:#111;'> 875B </span>","children":null,"spread":false}],"spread":true},{"title":"service","children":[{"title":"TeacherService.java <span style='color:#111;'> 757B </span>","children":null,"spread":false},{"title":"ClassesService.java <span style='color:#111;'> 855B </span>","children":null,"spread":false},{"title":"StudentService.java <span style='color:#111;'> 695B </span>","children":null,"spread":false}],"spread":true},{"title":"utils","children":[{"title":"StringUtil.java <span style='color:#111;'> 1.21KB </span>","children":null,"spread":false},{"title":"ConstantUtil.java <span style='color:#111;'> 310B </span>","children":null,"spread":false},{"title":"PropertiesReaderUtil.java <span style='color:#111;'> 1.19KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true}],"spread":true},{"title":".gitignore <span style='color:#111;'> 361B </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 4.10KB </span>","children":null,"spread":false}],"spread":true}],"spread":true}]