`

Spring面试知识点总结

阅读更多

什么是Spring
------开源的,控制反转(Inversion of Control)和面向切面的容器框架。
Spring核心:
IOC(控制反转)-------创建对象并且组装对象之间的关系。
IOC:应用程序本身不负责依赖对象的创建和维护,依赖对象的创建和维护是由外部容器负责的。这样控制权就由应用程序转移到了外部容器。控制权的转移就是所谓的反转。

依赖注入:Dependency Injection:在运行时由外部容器将依赖对象注入到组件中。

 

为什么使用Spring
1:降低组件之间的耦合度,实现各层之间的解耦
2:可以使用容器提供的众多服务。如:
--事务管理服务
--JMS
--Spring core核心服务
--持久化服务
--其他
3:提供了单例模式支持。开发人员不需要自己编写实现代码
4:提供了AOP技术。实现如:权限拦截,运行监控等功能
5:提供了众多的辅助类。如JDBC Template,HIbernate Template
6:对主流的应用框架提供了集成支持。集成Struts,JPA,Hibernate

 

spring的7个模块

spring核心容器(Core)

spring上下文

springAOP

SpringDAO

SpringORM

springWeb支持struts集成

springMVC自带的mvc框架

 

 

 

spring实现的2种设计模式

单态模式:接受容器管理的bean,默认采用单态模式管理。

工厂模式:spring就是实例化和管理全部bean的工厂。spring的上下文也就是工厂,也被设计成单态的

 

spring的依赖注入(也叫控制反转Ioc)实现策略有3种

 

依赖查找

依赖注入:接口注入(如Context.lookup)、构造注入、设置值注入。

 

注:利用反射来实现的。

 

设置值注入优点

与javabean类似,直观、自然、不臃肿、

 

构造注入优点

决定注入顺序

缺点:臃肿

 

IOC容器优缺点

优点:实现对象的热插拔。

缺点:步骤复杂、利用反射使效率损耗、缺少IDE重构支持。

 

 

 

 

 

 

spring容器:BeanFactory和ApplicationContext

之间是父子的关系

 

 

Spring实例化bean的三种方式
1:默认使用类加载器
2:使用静态工厂方法实例化bean对象
<bean id="名称" class="工厂类" factory-method="工厂类中创建bean实例的方法"/>
3:使用实例工厂方法实例化bena对象
<bean id="实例工厂名称" class="工厂类的路径"/>
<bean id="名称"  factory-bean="实例工厂名称" method="实例工厂里边的创建bena对象的方法"/>

Spring管理的bean的作用域
Spring生成的bean默认为单实例。singleton。
如果需要每次调用Spring的getBean方法就创建一个 bean的实例,可指定bean的属性scope="prototype"

还有:request、session、global session 这3个一般基于web的spring ApplicationContext情形下有效。

 

Spring的生命周期
bean的实例化:
1:当作用域范围为singleton时,在初始化Spring容易的时候实例化bean实例。
---1:如果lazy-init的值为true,则为延迟bean的实例化,即在Spring容器启动时不实例化bean的对象
2:当作用域范围为prototype时,在调用Spring的getBean的方法时实例化bean对象

注入依赖对象可以采用手工装配或者自动装配,在实际应用中建议采用手工装配。因为自动装配会产生未知情况,开发人员无法预见最终的装配结果。

 

 

加载spring有2种方式(略)

 

 

bean的属性

id                       命名bean

class                  实例化的类

factory-method  指定工厂方法

factory-bean     指定工厂类

scope                指定bean的作用域

depends-on      指定依赖bean

lazy-init             延迟初始化bean

init-method        初始化回调

destory-method  析构回调

parent              继承bean

 

bean的子元素

<property>子元素

直接value属性、使用子<value>、使用<ref>子元素指向另一个bean

此外property还可以包含集合:<list> <set>  <map>  <props>他们分别对应List Set  Map  Properties的值

 

<constructor-arg>子元素

用type指定参数类型、value指定输入参数的值

用ref属性指定其他的bean

使用<ref>子元素指向另一个bean

 

 

springAOP

 

AOP 是一个概念,一个规范,本身并没有设定具体语言的实现,这实际上提供了非常广阔的发展的空间。AspectJ是AOP的一个很悠久的实现,它能够和 Java 配合起来使用。

 

AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向方面编程。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。 
 

 

      AspectJ 中几个必须要了解的概念:

  Aspect: Aspect 声明类似于 Java 中的类声明,在 Aspect 中会包含着一些 Pointcut 以及相应的 Advice。

  Joint point(连接点):表示在程序中明确定义的点,典型的包括方法调用,对类成员的访问以及异常处理程序块的执行等等,它自身还可以嵌套其它 joint point。

  Pointcut(切入点):表示一组 joint point,这些 joint point 或是通过逻辑关系组合起来,或是通过通配、正则表达式等方式集中起来,它定义了相应的 Advice 将要发生的地方。

  Advice(通知):Advice 定义了在 pointcut 里面定义的程序点具体要做的操作,它通过 before、after 和 around 来区别是在每个 joint point 之前、之后还是代替执行的代码。

 

注:如果没有实现接口,需要引入cglib

分享到:
评论

相关推荐

    面试知识点总结--Spring 应用框架技术.pdf

    Spring 应用框架技术知识点总结 Spring 是一个流行的 Java 应用框架,它提供了许多功能强大且灵活的技术来帮助开发者快速构建企业级应用程序。下面是 Spring 应用框架技术的知识点总结: 一、Spring 和 Struts 的...

    Java 高频Spring面试

    Java 高频 Spring 面试知识点总结 一、Spring 框架概述 Spring 框架是一个为 Java 应用程序开发提供综合、广泛的基础性支持的 Java 平台。它帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序...

    SpringCloud知识点暨面试题总结(2).pdf

    SpringCloud是当前微服务架构下非常流行的一个框架,它是基于SpringBoot的,用于快速构建分布式系统中的一些常见模式...这些知识点在面试中也经常被提及,因此对于准备面试的开发者来说,熟悉这些内容是非常有帮助的。

    面试知识点总结--spring面试题大全.pdf

    本文将深入探讨Spring面试中常见的知识点,包括Spring的优点、DI(Dependency Injection)的实现方式、IOC(Inversion of Control)的理解、Spring对ORM框架如Hibernate的支持,以及Spring的事务管理。 首先,...

    Spring面试题总结.pdf

    标题为"Spring面试题总结"的文档是一份专门针对程序员在应聘与Spring相关职位时可能会遇到的技术面试题的整理和总结。Spring作为一个企业级Java应用框架,已经成为业界使用最为广泛的框架之一,对于期望从事Java后端...

    java面试大全。各大公司面试总结。知识点总结,共31个文档

    为了帮助你更好地准备,以下是基于描述中提到的“31个文档”可能涉及的一些核心Java面试知识点的详细阐述: 1. **基础概念**:理解Java语言的基础,如变量、数据类型、运算符、流程控制(if/else,switch,for,...

    JAVA高级面试常问知识点总结

    Java作为企业级应用的主流编程语言,其高级面试知识点涵盖了广泛的技术领域,包括Spring框架、微服务、性能优化以及高并发处理。以下是对这些知识点的详细解析: ### Spring框架 Spring是Java开发的核心框架,它的...

    Java面试知识点总结,2022最新

    以下是一些重要的Java面试知识点的详细解析: 1. **原始数据类型及其封装类** - Java的原始数据类型包括`boolean`, `byte`, `short`, `int`, `long`, `float`, `double`, 和 `char`。它们的大小分别为:`boolean`...

    Spring面试总结2013

    本文将深入探讨2013年Spring面试中的关键知识点。 首先,我们来理解控制反转(Inversion of Control,IoC)和依赖注入(Dependency Injection,DI)。IoC意味着不再由对象自己创建和管理依赖关系,而是将这个责任...

    Java面试知识点汇总

    ### Java面试知识点汇总 #### 一、Java基础知识 1. **基本数据类型及封装类** - `byte`: 占1字节,默认值为0,封装类为`Byte`。 - `short`: 占2字节,默认值为0,封装类为`Short`。 - `int`: 占4字节,默认值...

    Java、springBoot、springCloud知识点整理;大厂面试题总结

    本知识点整理旨在深入解析这些技术,并结合大厂面试常见问题进行讲解。 首先,Java作为全球最广泛使用的编程语言之一,其稳定性和强大的类库支持使得它在后端开发领域占据了主导地位。理解Java的核心概念,如面向...

    Java、springBoot、springCloud知识点整理;大厂面试题总结。.zip

    本文将深入探讨这三个领域的关键知识点,以及在大厂面试中常见的问题。 首先,我们来了解Java的基础知识。Java的核心特性包括面向对象、自动内存管理(垃圾回收)、平台无关性、多线程和丰富的类库。在面试中,面试...

    spring面试题大全.doc

    以下是对这些知识点的详细解释: **1. Spring 的优点** - **分层架构**:Spring 的模块化设计允许开发者按需选择,不必要引入不必要的复杂性。 - **POJO 编程**:Spring 允许使用普通 Java 对象(POJOs),提高了...

    spring面试总结

    以下是对Spring框架的一些关键知识点的详细说明: 1. 反转控制与注入: Spring的核心特性之一是反转控制(IoC),它通过容器管理对象的生命周期和依赖关系。在Spring中,我们可以使用XML配置文件(如`beans.xml`)...

    spring常见面试题(包含答案)

    Spring 框架知识点总结 Spring 是一个 Java 企业级应用的开源开发框架,主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的...

    11-Spring Boot面试题(92题).pdf

    标题中提到的“Spring Boot面试题(92题).pdf”表明这是一份包含了92个关于Spring Boot的面试题目的文档。...对于Spring Boot的面试准备,上述知识点是面试官常问的要点,理解这些知识点对通过面试十分重要。

    面试知识点总结--流行的框架与新技术.pdf

    【面试知识点总结--流行的框架与新技术】 1. Struts 框架的理解: Struts 是一个基于 MVC(Model-View-Controller)模式的Java Web框架,它的核心是ActionServlet,这是一个特殊的Servlet,负责接收和分发HTTP请求...

    Spring的面试题

    Spring框架是Java开发中不可或缺的一部分,它以其强大的功能和易用性深受开发者喜爱。本文将深入探讨Spring的工作原理、为何使用Spring、SSH整合...理解并熟练掌握这些知识点对于成为一位优秀的Java开发者至关重要。

    spring知识点

    spring知识点:作为初学者详细整理了spring的相关知识点 便于复习面试

    牛客中总结的面试知识概括整理,

    对牛客上面试的总结知识点,和做题目的知识点记录; 牛客中关于spring的题目,所涉及的知识点总结

Global site tag (gtag.js) - Google Analytics