在动不动就是SSH的年代,IOC,AOP不是啥新东东。Spring之所以庞大,是因为集成了太多太多的功能。
验证性的开发了一下,仅实现IOC、AOP、子容器简单实践一下。
当然了,必须以HelloWorld示例:
接口:
1 2 3 |
|
实现:
1 2 3 4 5 6 7 |
|
测试:
1 2 3 4 5 6 7 8 |
|
运行结果:
1 2 |
|
可以看到根据接口和命名访问都是没有问题的。
再来一个AOP的例子:
先写个拦截器:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
拦截点有前置,后置及异常,可以实现在一个类上,也可以实现在不同的类上。如果有状态的,则应该配成Prototype或Request类型,否则要考虑线程安全问题。
还是用前面的HelloImpl做测试:
1 2 3 4 5 6 7 8 |
|
运行结果:
1 2 3 |
|
当然了,上面的类注册都是手工添加的,实际使用,会增加一个类扫描器自动添加到容器中的。
再来看一个子容器的类子:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
在上面的示例中,创建了一个容器,一个子容器,然后把子容器放在父容器下。
1 2 3 4 5 |
|
HelloHelper
1 2 3 4 5 6 7 |
|
HelloHelperImpl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
|
下面是运行结果:
1 2 3 4 5 6 7 |
|
Jar包大小:
16,208 tinyioc-0.0.12-SNAPSHOT.jar