spring 中都用到了哪些设计模式?
- 「1.工厂设计模式」: 比如通过 BeanFactory 和 ApplicationContext 来生产 Bean 对象
- 「2.代理设计模式」: AOP 的实现方式就是通过代理来实现,Spring主要是使用 JDK 动态代理和 CGLIB 代理
- 「3.单例设计模式」: Spring 中的 Bean 默认都是单例的
- 「4.模板方法模式」: Spring 中 jdbcTemplate 等以 Template 结尾的对数据库操作的类,都会使用到模板方法设计模式,解决一些通用的功能
- 「5.包装器设计模式」: 我们的项目需要连接多个数据库,不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源
- 「6.观察者模式」: Spring 事件驱动模型是使用观察者模式的
- 「7.适配器模式」:Spring AOP 的增强或通知(Advice)使用到了适配器模式
spring 中有哪些核心模块?
- 1.「Spring Core」:Spring核心,它是框架最基础的部分,提供IOC和DI,spring的任何其他地方要想运行,都必须要有spring的IOC核心容器的支持
- 2.「Spring Context」:Spring上下文容器,它是 BeanFactory 功能加强的一个子接口
- 3.「Spring Web」:提供Web应用开发的支持
- 4.「Spring MVC」:针对Web应用中MVC思想的实现
- 5.「Spring DAO」:提供对JDBC的操作,简化了JDBC编码,同时,编码更具有健壮性
- 6.「Spring ORM」:支持用于流行的ORM框架的整合,比如:Spring + Hibernate、Spring + iBatis、Spring + JDO的整合等
- 7.「Spring AOP」:即面向切面编程,它提供了与AOP联盟兼容的编程实现