Spring是一个轻量级的IoC和AOP容器框架。
1.Spring是非侵入式的,基于Spring开发的应用一般不依赖于Spring的类
2.Spring是一个轻量级的IOC和AOP容器框架。利用IOC,降低了组件之间的耦合性。AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
3.Spring是个容器,因为它包含并且管理应用对象的生命周期和配置,比如对象的创建、销毁、回调等
4.Spring提供对事务的管理
5.Spring对主流的框架提供了很好的集成支持,比如和hibernate SpringMVC等框架的集成
工厂设计模式 : Spring使用工厂模式通过 BeanFactory、ApplicationContext 创建 bean 对象。
代理设计模式 : Spring AOP 功能的实现。
单例设计模式 : Spring 中的 Bean 默认都是单例的。
模板方法模式 : Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。
适配器模式 :Spring AOP 的增强或通知(Advice)使用到了适配器模式、spring MVC 中也是用到了适配器模式适配Controller。
BeanFactroy采用的是延迟加载形式来注入Bean的,即只有在使用到某个Bean时(调用getBean()),才对该Bean进行加载实例化。 ApplicationContext,它是在容器启动时,一次性创建了所有的Bean。
延迟实例化的优点:(BeanFactory)
应用启动的时候占用资源很少;对资源要求较高的应用,比较有优势;
不延迟实例化的优点: (ApplicationContext)
Component 和 @Bean的区别:https://blog.csdn.net/qq_35430000/article/details/108910387