开头

在开始正文之前,请你先思考几个问题:

  • 你项目中有使用哪些 GOF 设计模式
  • 说一说 GOF 23 种设计模式的设计理念
  • 说说 Spring 框架中如何实现设计模式

假设我是面试官问起了你这些面试题,你该如何回答呢,请先思考一分钟。

Java设计heartbeat Java设计模式面试题_后端

好的,我们开始进入正题。设计模式实践里面提供了许多经久不衰的解决方案和最佳方案。这里,GOF 设计模式主要分为三大类:创建模式、结构模式和行为模式。创建模式对于创建对象实例非常有用。结构模式通过处理类或对象的组合来作用于企业级应用的设计结构,从而降低了应用的复杂性,提高了应用的可重用性和性能。行为模式的意图是一组对象之间的交互作用,以执行单个对象无法自己执行的任务。它描述了类或对象交互以及职责的分配。

那么,本文的核心话题是 Spring 如何通过使用大量设计模式和良好实践来构建应用程序。

一、掀起Spring的盖头来

Spring框架的由来

Java设计heartbeat Java设计模式面试题_AOP_02

Spring框架概述

Java设计heartbeat Java设计模式面试题_AOP_03

二、Spring的IoC容器

重头开始认识loC的基本概念:(构造方法注入+scttcr方法注入+接口注入)

Java设计heartbeat Java设计模式面试题_java_04

运筹帷幄的秘密loC Service Provider:(直接编码方式+配置文件方式)

Java设计heartbeat Java设计模式面试题_后端_05

Spring 的loC容器之BeanFactory:(直接编码方式+出外部配置文件方式+注解方式+BeanFactorY的XML之旅)

Java设计heartbeat Java设计模式面试题_AOP_06

Spring loC容器之App1icationContext:(统一资源加载策略+国际化信息支持+容器内部事件发布)

Java设计heartbeat Java设计模式面试题_java_07

Spring loC容器之扩展篇:(基于注解的依赖注入)

Java设计heartbeat Java设计模式面试题_后端_08

三、你一直想搞定的Spring AOP框架

一起来看AOP:(AOP的尴价+AOP走向现实+Java平台上的AOP实现机制+AOP国家的公民)

Java设计heartbeat Java设计模式面试题_java_09

**Spring AOP概述及其实现机制:(**Spring AOP概述+Spring AOP的实现机制)

Java设计heartbeat Java设计模式面试题_java_10

**SpringAOP的一世:(**Spring AOP中的Joinpoint+Spring AOP中的Pointcut+Spring AOP中的Advice+Spring AOP的织入 

Java设计heartbeat Java设计模式面试题_AOP_11

SpringAOP的二世:(@AspectJ形式的Spring AOP+基于Schema的AOP**)**

Java设计heartbeat Java设计模式面试题_Java设计heartbeat_12

AOP应用案例:(异常处理+安全检查)

Java设计heartbeat Java设计模式面试题_Java设计heartbeat_13

**Spring AOP之扩展篇:**有关公开当前调用的代理对象

Java设计heartbeat Java设计模式面试题_Java设计heartbeat_14

四、使用 Spring访问数据

统一的数据访问异常层次体系:(DA0模式的背景+梦想照进现实+发现问题+解决问题)

Java设计heartbeat Java设计模式面试题_java_15

JDBC API的最佳实践:(基于Template的JDBC使用方式+基于操作对象的JDBC使用方式)

Java设计heartbeat Java设计模式面试题_面试_16

Spring对各种ORM的集成:(Spring对Hibernate的集成+Spring对iBATIS的集成+Spring中对其他ORM方案的集成)

Java设计heartbeat Java设计模式面试题_AOP_17

Spring 数据访问之扩展篇:(活用模板方法模式及ca11back+数据访问中的多数据源)

Java设计heartbeat Java设计模式面试题_后端_18

五、事务管理

有关事务的楔子

Java设计heartbeat Java设计模式面试题_面试_19

群雄逐鹿下的 Java事务管理:(Java平台的局部事务支持+Java平台的分布式事务支持)

Java设计heartbeat Java设计模式面试题_java_20

Spring事务王国的架构:

Java设计heartbeat Java设计模式面试题_java_21

使用 Spring进行事务管理:(编程式事务管理+声明式事务管理)

Java设计heartbeat Java设计模式面试题_AOP_22

**Spring事务管理之扩展篇:(**理解并活用ThreadLocal+谈Strategy模式在开发过程中的应用+Spring与JTA背后的奥秘)

Java设计heartbeat Java设计模式面试题_面试_23

六、Spring的 Web MVC框架

迈向 Spring MVC的旅程:

Java设计heartbeat Java设计模式面试题_java_24

Spring MVC初体验:

Java设计heartbeat Java设计模式面试题_java_25

近距离接触 Spring MVC:

Java设计heartbeat Java设计模式面试题_后端_26

认识更多 Spring MVC家族:(文件上传与MultipartResolver+框架内处理流程拦截与Handler+框架内的异常处理与Handler)

Java设计heartbeat Java设计模式面试题_AOP_27

Spring MVC中基于注解的Contro1ler:(初识基于注解的Controller+基于注解的Controller原型分析)

Java设计heartbeat Java设计模式面试题_Java设计heartbeat_28

Spring MVC之扩展篇:

Java设计heartbeat Java设计模式面试题_AOP_29

七、Spring框架对J2EE服务的集成和支持

**Spring框架内的JNDI支持:(**JNDI简单回顾+pring框架内JNDI访问的基石)

Java设计heartbeat Java设计模式面试题_Java设计heartbeat_30

**Spring框架对JMS的集成:(**说说JMS的身世+使用JMS API进行应用开发的传统套路)

Java设计heartbeat Java设计模式面试题_后端_31

使用 Spring发送E-mail:

Java设计heartbeat Java设计模式面试题_AOP_32

**Spring中的任务调度和线程池支持:(**Spring对JDK Timer的集成+Executor的孪生兄弟)

Java设计heartbeat Java设计模式面试题_面试_33

Spring框架对J2EE服务的集成之扩展篇:

Java设计heartbeat Java设计模式面试题_java_34

**Spring远程方案:(**Spring Remoting架构分析+扩展Spring Remoting+Spring Remoting之扩展篇)

Java设计heartbeat Java设计模式面试题_AOP_35