为什么要加强网站安全建设,建设银行兰州分行网站,深圳开发网站的公司哪家好,电子政务网站设计文章目录01. 什么是Spring#xff1f;02. Spring框架的设计目标#xff0c;设计理念#xff0c;和核心是什么#xff1f;03. Spring的优点是什么#xff1f;04. Spring框架中都用到了哪些设计模式#xff1f;05. Spring有哪些应用场景?06. Spring由哪些模块组成#xf…
文章目录01. 什么是Spring02. Spring框架的设计目标设计理念和核心是什么03. Spring的优点是什么04. Spring框架中都用到了哪些设计模式05. Spring有哪些应用场景?06. Spring由哪些模块组成07. 详细讲解一下核心容器 (Core Container) 模块?08. Spring框架中有哪些不同类型的事件?09. 使用 Spring 有哪些方式01. 什么是Spring Spring 是一个轻量级的 Java EE 开发框架是针对bean的生命周期进行管理的轻量级容器。它的目的主要是为了简化Java EE的企业级应用开发解决了开发者在J2EE开发中遇到的许多常见的问题提供了IOC、AOP 及Web MVC等功能。 02. Spring框架的设计目标设计理念和核心是什么 (1) Spring的目标在于让Java EE的开发变得更容易 (2) Spring设计理念是让应用开发对接口编程而不是对类编程。这样POJO使用Java EE服务时可以将对这些服务实现的依赖降到最低尽可能地降低框架的侵入性。 (3) IoC容器和AOP是Spring的核心是Spring系统中其他组件模块和应用开发的基础。 03. Spring的优点是什么 (1) 低侵入式设计代码污染极低 (2) 独立于各种应用服务器基于Spring框架的应用可以真正实现Write Once,Run Anywhere的承诺 (3) Spring的DI机制降低了业务对象替换的复杂性提高了组件之间的解耦 (4) Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理从而提供了更好的复用 (5) Spring的ORM和DAO提供了与第三方持久层框架的良好整合并简化了底层的数据库访问 (6) Spring并不强制应用完全依赖于Spring开发者可自由选用Spring框架的部分或全部 04. Spring框架中都用到了哪些设计模式 (1) 工厂模式Spring使用工厂模式通过BeanFactory和ApplicationContext来创建对象 (2) 单例模式Bean默认为单例模式 (3) 策略模式例如Resource的实现类针对不同的资源文件实现了不同方式的资源获取策略 (4) 代理模式Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术 (5) 模板方法可以将相同部分的代码放在父类中而将不同的代码放入不同的子类中用来解决代码重复的问题。比如RestTemplate, JmsTemplate, JpaTemplate (6) 适配器模式Spring AOP的增强或通知Advice使用到了适配器模式Spring MVC中也是用到了适配器模式适配Controller (7) 观察者模式Spring事件驱动模型就是观察者模式的一个经典应用。 (8) 桥接模式可以根据客户的需求能够动态切换不同的数据源。比如我们的项目需要连接多个数据库客户在每次访问中根据需要会去访问不同的数据库 05. Spring有哪些应用场景? J2EE企业级的应用开发 (1) 方便解耦简化开发通过Spring提供的IoC容器可以将对象之间的依赖关系交由Spring进行控制避免硬编码所造成的过度程序耦合。 (2) AOP编程的支持通过Spring提供的AOP功能用户可以方便地进行面向切面编程许多不容易用传统面向对象编程OOP实现的功能都可以通过AOP轻松应对。 (3) 声明式事务的支持在Spring中用户可以从单调烦闷的事务管理代码中解脱出来通过声明式事务灵活地进行事务管理提高开发效率和质量。 (4) 方便程序的测试可以用非容器依赖的编程方式进行几乎所有的测试工作在Spring中测试不再是昂贵的操作而是随手可做的事情。 (5) 方便集成各种优秀的框架Spring不排斥各种优秀的开源框架相反Spring可以降低各种框架的使用难度Spring提供了对各种优秀框架如Struts、Hibernate、Hessian、Quartz等的直接支持。 (6) 降低Java EE API的使用难度Spring为很多难用的Java EE API如JDBC、JavaMail、远程调用等提供了一个薄薄的封装层通过Spring的简易封装大大降低了这些Java EE API的使用难度。 (7) Java源码是经典的学习范例。Spring的源码设计精妙、结构清晰、匠心独用处处体现着大师对Java设计模式的灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平那么学习和研究Spring源码就可以让你获得意想不到的效果。 06. Spring由哪些模块组成 (1) Core ContainerSpring的核心容器由 spring-core、spring-beans、spring-context、spring-context-support和spring-expression 这些模块组成。所有Spring的其他模块都是建立在Core Container基础模块上的。该模块规定了创建和维护Bean的方式提供了控制反转IoC和依赖注入DI等特性。 (2) Data Access/Integration数据访问集成模块提供了对JDBC、ORM、OXM、JMS和Transaction等模块的集成。使主流的ORM框架持久化框架和消息中间件可以很方便地集成到Spring中降低开发人员对这些框架的维护成本提升了开发效率。 (3) Web模块Web模块提供了对Web开发相关技术的集成对开发模型视图控制器MVC项目提供便利。 (4) AOP模块AOP模块提供了AOP联盟提倡的面向切面编程的实现环境。AOP将代码按功能进行分离降低了模块间代码的耦合度。 (5) Test模块:Test模块支持JUnit和TestNG等单元测试模块的集成还提供了mock对象使开发人员可以更加独立的测试代码。 07. 详细讲解一下核心容器 (Core Container) 模块? Spring的核心容器由 spring-core、spring-beans、spring-context、spring-context-support和spring-expression 这些模块组成 (1) spring-core和spring-beans构成了框架最基础的部分包括控制反转和依赖注入功能。 (2) spring-context是基于spring-core和spring-beans构建的context模块继承了beans的特性为Spring核心提供了大量扩展添加了对国际化例如资源绑定、事件传播、资源加载和对Context的透明创建的支持ApplicationContext接口是Context模块的关键。 (3) spring-context-support为集成第三方库如定时器Quartz提供支持。 (4) spring-expression提供了一种强大的表达式语言可以在运行时查询和操作对象。 08. Spring框架中有哪些不同类型的事件? Spring 提供了以下5种标准的事件 (1) 上下文更新事件ContextRefreshedEvent在调用ConfigurableApplicationContext 接口中的refresh()方法时被触发。 (2) 上下文开始事件ContextStartedEvent当容器调用ConfigurableApplicationContext的Start()方法开始/重新开始容器时触发该事件。 (3) 上下文停止事件ContextStoppedEvent当容器调用ConfigurableApplicationContext的Stop()方法停止容器时触发该事件。 (4) 上下文关闭事件ContextClosedEvent当ApplicationContext被关闭时触发该事件。容器被关闭时其管理的所有单例Bean都被销毁。 (5) 请求处理事件RequestHandledEvent在Web应用中当一个http请求结束触发该事件。 除了上面介绍的事件以外还可以通过扩展 ApplicationEvent 类来开发自定义的事件。 09. 使用 Spring 有哪些方式 (1) 作为一个成熟的 Spring Web 应用程序。 (2) 作为第三方 Web 框架使用 Spring Frameworks 中间层。 (3) 作为企业级 Java Bean它可以包装现有的 POJO。 (4) 用于远程使用。