SSM框架(面试篇)

SSM框架是spring MVC,spring和mabatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层。

spring MVC:负责请求的转发和视图管理。

spring        :实现业务对象管理。

mybatis      :作为数据对象的持久化引擎。

一.谈谈你对Spring框架的理解

    Spring一个开源的,用来简化企业级应用开发的应用开发框架。Spring的核心就是IOC(控制反转)和AOP(面向切面编程)。因此,也可以说spring是一个轻量级的IOC(控制反转)和AOP(面向切面)的容器框架。

  Spring容器:spring框架中的一个核心模块,用来管理对象(包括对象的创建,销毁和初始化等)。它帮助完成类的初始化与装配工作,让开发者从这些底层类的实例化,依赖关系装配类的工作中脱离出来,专注于更有意义的业务逻辑开发工作。

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.     xmlns:p="http://www.springframework.org/schema/p"  
  5.     xsi:schemaLocation="http://www.springframework.org/schema/beans   
  6.        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">  
  7.         <!--①实现类实例化-->  
  8.    <bean id="geli" class="LiuDeHua"/>  
  9.    <bean id="moAttack" class="com.baobaotao.ioc.MoAttack"   
  10.          p:geli-ref="geli"/><!--②通过geli-ref建立依赖关系-->  
  11. </beans>

通过new XmlBeanFactory(“beans.xml”)等方式即可启动容器。在容器启动时,Spring根据配置文件的描述信息,自动实例化Bean并完成依赖关系的装配,从容器中即可返回准备就绪的Bean实例,后续可直接使用之。 
   Spring为什么会有这种“神奇”的力量,仅凭一个简单的配置文件,就能魔法般地实例化并装配好程序所用的Bean呢?这种“神奇”的力量归功于Java语言本身的类反射功能

1.1 ioc是什么?

     IOC——:inversion of control,即“控制反转”,ioc不是一种技术,是一种设计思想,一个重要的面向对象编程的法则。在java开发中,IOC意味着将你设计好的对象交给容器控制,而不是在传统的在你的对象内部直接控制。

  何为“控制”:传统的JAVA SE程序设计,我们是从对象内部通过new创建对象,是程序控制对象的创建,而IOC有一个专门的容器(IOC容器)创建对象,IOC容器控制外部资源的获取(包括对象,文件等)。

  何为“反转”:传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,即“正转”。而“反转”,是由容器来帮我们去创建及注入依赖对象。对象只是被动的接受依赖对象。依赖对象的获取被反转了。

1.2 ioc有什么用?

   ioc容器能帮我们管理对象的依赖关系,这样对象与对象的耦合度低,方便代码的维护。对于spring框架来说,ioc就是由spring来负责控制对象的生命周期和对象间的关系。

1.3 DI

  DI——dependenc injection,即“依赖注入”。IOC与DI有什么关系呢?其实它们是同一个概念的不同角度描述。“依赖注入”,相对ioc而言,“依赖注入”明确地描述了“被注入对象”依赖ioc容器配置依赖对象。IOC的一个重点是在系统运行中,动态的向某个对象提供所需要的其他对象,这一点通过DI实现。DI如何实现?这就要引入java 1.3之后的一个重要特征——反射(reflection)。它允许程序在运行的时候动态生成对象、执行对象的方法、改变对象的属性。spring就是通过反射注入的。

1.4 spring的两种注入方式

 A. 构造器注入:通过调用的类的构造函数,将接口实现类通过构造函数变量传入。

 B:setter方法注入:是容器通过调用无参构造器或无参static 工厂方法实列化bean之后,调用该bean的setter方法,    即实现了基于setter的依赖注入

2.1 AOP是什么?

 AOP——(Aspect-Oriented Programming),即面向切面编程。AOP可以说是OOP的补充和完善。为了解决当我们需要为分散的对象引入公共行为的时候,如程序中交叉业务逻辑(日志,安全,事务),这是我们应当把它封装成一个切面,注入到目标对象(具体逻辑)中去。

实现AOP的技术主要分为两大类:

一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;

二是采用静态织入的方式,引入特定的语法创建“方面”,从而使得编译器可以在编译期间织入有关“方面”的代码.

           

猜你喜欢

转载自www.cnblogs.com/mingyun/p/9237718.html
今日推荐