zoukankan      html  css  js  c++  java
  • spring面试题

    1、Spring是什么?

            Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求。常见的配置方式有三种:基于XML的配置、基于注解的配置、基于Java的配置。

    主要由以下几个模块组成:

    Spring Core:核心类库,提供IOC服务;

    Spring Context:提供框架式的Bean访问方式,以及企业级功能(JNDI、定时任务等);

    Spring AOP:AOP服务;

    Spring DAO:对JDBC的抽象,简化了数据访问异常的处理;

    Spring ORM:对现有的ORM框架的支持;

    Spring Web:提供了基本的面向Web的综合特性,例如多方文件上传;

    Spring MVC:提供面向Web应用的Model-View-Controller实现。

    2、Spring 的优点?

    (1)spring属于低侵入式设计,代码的污染极低;

    (2)spring的DI机制将对象之间的依赖关系交由框架处理,减低组件的耦合性;

    (3)Spring提供了AOP技术,支持将一些通用任务,如安全、事务、日志、权限等进行集中式管理,从而提供更好的复用。

    (4)spring对于主流的应用框架提供了集成支持。

    3、Spring的AOP理解:

    OOP面向对象,允许开发者定义纵向的关系,但并适用于定义横向的关系,导致了大量代码的重复,而不利于各个模块的重用。

    AOP,一般称为面向切面,作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect),减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。可用于权限认证、日志、事务处理。

    4、Spring的IoC理解:

    (1)IOC就是控制反转,是指创建对象的控制权的转移,以前创建对象的主动权和时机是由自己把控的,而现在这种权力转移到Spring容器中,并由容器根据配置文件去创建实例和管理各个实例之间的依赖关系,对象与对象之间松散耦合,也利于功能的复用。DI依赖注入,和控制反转是同一个概念的不同角度的描述,即 应用程序在运行时依赖IoC容器来动态注入对象需要的外部资源。

    (2)最直观的表达就是,IOC让对象的创建不用去new了,可以由spring自动生产,使用java的反射机制,根据配置文件在运行时动态的去创建对象以及管理对象,并调用对象的方法的。

    (3)Spring的IOC有三种注入方式 :构造器注入、setter方法注入、根据注解注入

    <-- setter方法注入 -->

    <bean id="programmer" class="com.spring.demo2.entity.Programmer"> <property name="name" value="小李"></property> <property name="sex" value="男"></property> <property name="computer" ref="computer"></property> </bean> <bean id="computer" class="com.spring.demo2.entity.Computer"> <property name="brand" value="hp"></property> <property name="color" value="黑"></property> <property name="size" value="14"></property> </bean>

      

      
    <-- 构造器注入 -->

    <bean id="programmer" class="com.spring.demo3.entity.Programmer"> <constructor-arg ref="computer"></constructor-arg> </bean> <!-- 构造器里面没有name字段,只有value,是根据构造器的方法参数顺序来定义的 --> <bean id="computer" class="com.spring.demo3.entity.Computer"> <constructor-arg value="联想"></constructor-arg> <constructor-arg value="红色"></constructor-arg> <constructor-arg value="15.6寸"></constructor-arg> </bean>

      注解注入:

    在类前面加注解:@Component,在需要注入的类里面加注解:@Autowired,这样xml里面的自动扫描就会扫描到这些加了注解的类和属性,

    在实例化bean的时候,Spring容器会把加了@Component的类实例化;在实际运行时,会给加了@Autowired的属性注入对应的实例。

  • 相关阅读:
    微擎开发笔记
    Array对象的方法实现(1)----Array.prototype.push和Array.prototype.concat(实现常规参数的功能)
    ThinkCMF 5 基础门户CMS框架的模板widget标签实现
    [转]mysql为什么默认有那么多root用户,还有用户名为空的用户?
    PHP 5.4特性 trait
    道破人性
    c#使用easyhook库进行API钩取
    黑马eesy_15 Vue:04.综合案例(前端Vue实现)
    黑马eesy_15 Vue:04.Vue案例(ssm环境搭建)
    黑马eesy_15 Vue:03.生命周期与ajax异步请求
  • 原文地址:https://www.cnblogs.com/yzxcs/p/11260751.html
Copyright © 2011-2022 走看看