1.工厂设计模式
Spring使用工厂模式可以通过BeanFactory或ApplicationContext创建bean对象。
二者对比:
BeanFactory :延迟注入(使用到某个 bean 的时候才会注入),相比于BeanFactory来说会占用更少的内存,程序启动速度更快。
ApplicationContext :容器启动的时候,不管你用没用到,一次性创建所有 bean 。BeanFactory 仅提供了最基本的依赖注入支持,ApplicationContext 扩展了 BeanFactory ,除了有BeanFactory的功能还有额外更多功能,所以一般开发人员使用ApplicationContext会更多。
2. 单例设计模式
Spring中bean的默认作用域就是singleton。
Spring实现单例的方式:
xml格式:<bean id="userService" class="top.snailclimb.UserService" scope="singleton"/>
注解:@Scope(value = "singleton")
3.动态代理模式
Spring 实现 Aop 使用了动态代理模式。
先看看 Spring 如何实现代理类的,要实现代理类在 Spring 的配置文件中通常是这样定一个 Bean 的,如下:
配置代理类 Bean
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|