SpringMVC面试爱问什么
发布网友
发布时间:2022-04-20 12:18
我来回答
共2个回答
热心网友
时间:2022-04-10 08:29
Spring依赖注入有哪几种方式。
答:构造注入、接口注入、Set方法注入、映射注入。
2. 对Spring 的理解. (中)
答:Spring是一个容器框架,其核心机制在于IOC和AOP
3. 简述一下Spring。
答:SpringFramework 是一个开源的Java/Java EE的应用程序框架。Spring Framework 提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。
4、Spring 中包含的关键特性
答:强大的基于 JavaBeans 的采用控制翻转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简易。 一个可用于从 applet 到 Java EE 等不同运行环境的核心 Bean 工厂。数据库事务的一般化抽象层,允许宣告式(Declarative)事务管理器,简化事务的划分使之与底层无关。
5、 Spring里的声明式事务是怎么实现的。
答:先定义一个类,实现MethodBeforeAdvice、AfterReturningAdvice等接口。
在Spring配置文件里配置advice的bean,然后配置代理类,在类里注入advice和目标类。
热心网友
时间:2022-04-10 09:47
1. Spring依赖注入有哪几种方式。
答:构造注入、接口注入、Set方法注入、映射注入。
2. 对Spring 的理解. (中)
答:Spring是一个容器框架,其核心机制在于IOC和AOP
3. 简述一下Spring。
答:SpringFramework 是一个开源的Java/Java EE的应用程序框架。Spring Framework 提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。
Spring 中包含的关键特性
l 强大的基于 JavaBeans 的采用控制翻转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简易。
l 一个可用于从 applet 到 Java EE 等不同运行环境的核心 Bean 工厂。
l 数据库事务的一般化抽象层,允许宣告式(Declarative)事务管理器,简化事务的划分使之与底层无关。
l 内建的针对 JTA 和 单个 JDBC 数据源的一般化策略,使 Spring 的事务支持不要求 Java EE 环境,这与一般的 JTA 或者 EJB CMT 相反。
l JDBC 抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码), 简化了错误处理, 大大减少了程序员的编码量. 再次利用JDBC时,你无需再写出另一个 '终止' (finally) 模块. 并且面向JDBC的异常与Spring 通用数据访问对象 (Data Access Object) 异常等级相一致.
l 以资源容器,DAO 实现和事务策略等形式与 Hibernate,JDO 和iBATIS SQL Maps 集成。利用众多的翻转控制方便特性来全面支持, 解决了许多典型的Hibernate集成问题. 所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等级规范.
l 灵活的基于核心 Spring 功能的 MVC 网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)技术,例如 JSP,FreeMarker,Velocity,Tiles,iText以及 POI。值得注意的是,Spring 中间层可以轻易地结合于任何基于 MVC 框架的网页层,例如 Struts,WebWork,或 Tapestry。
l 提供诸如事务管理等服务的面向方面编程框架。
4. Spring自带的AOP有哪些。
答:@AspectJ和基于Schema的两种切面定义的AOP
5. Spring里的声明式事务是怎么实现的。
先定义一个类,实现MethodBeforeAdvice、AfterReturningAdvice等接口。
在Spring配置文件里配置advice的bean,然后配置代理类,在类里注入advice和目标类。
48.Spring原理(中)
spring的最大作用ioc/di,将类与类的依赖关系写在配置文件中,程序在运行时根据配置文件动态加载依赖的类,降低的类与类之间的藕合度。它的原理是在applicationContext.xml加入bean标记,在bean标记中通过class属性说明具体类名、通过property标签说明该类的属性名、通过constructor-args说明构造子的参数。其一切都是返射,当通过applicationContext.getBean("id名称")得到一个类实例时,就是以bean标签的类名、属性名、构造子的参数为准,通过反射实例对象,唤起对象的set方法设置属性值、通过构造子的newInstance实例化得到对象。正因为spring一切都是反射,反射比直接调用的处理速度慢,所以这也是spring的一个问题。
spring第二大作用就是aop,其机理来自于代理模式,代理模式有三个角色分别是通用接口、代理、真实对象代理、真实对象实现的是同一接口,将真实对象作为代理的一个属性,向客户端公开的是代理,当客户端调用代理的方法时,代理找到真实对象,调用真实对象方法,在调用之前之后提供相关的服务,如事务、安全、日志。
121.Spring的核心机制是什么,分别有什么作用?
答:
(1)DI (Dependency Injection) ,降低耦合度,便于程序功能扩展,也体现了而向对象设计原则中的开闭原则。
(2)AOP (Aspect Oriented Program),集中处理程序中的公共问题,比如事务、权限、业务日志等,可以将业务逻辑和这些公共问题分开处理。
166.Spring框架分为哪七大模块,各模块的主要功能作用是什么
七大模块,如下:
1. Spring Core: Core封装包是框架的最基础部分,提供IOC和依赖注入特性。这里的基础概念是BeanFactory,它提供对Factory模式的经典实现来消除对程序性单例模式的需要,并真正地允许你从程序逻辑中分离出依赖关系和配置。
2.Spring Context: 构建于Core封装包基础上的 Context封装包,提供了一种框架式的对象访问方法,有些象JNDI注册器。Context封装包的特性得自于Beans封装包,并添加了对国际化(I18N)的支持(例如资源绑定),事件传播,资源装载的方式和Context的透明创建,比如说通过Servlet容器。
3.Spring DAO: DAO (Data AccessObject)提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据库厂商特有的错误代码。 并且,JDBC封装包还提供了一种比编程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而且对所有的POJOs(plainold Java objects)都适用。
4.Spring ORM: ORM 封装包提供了常用的“对象/关系”映射APIs的集成层。 其中包括JPA、JDO、Hibernate 和iBatis 。利用ORM封装包,可以混合使用所有Spring提供的特性进行“对象/关系”映射,如前边提到的简单声明性事务管理。
5.Spring AOP: Spring的 AOP 封装包提供了符合AOP Alliance规范的面向方面的编程实现,让你可以定义,例如方法*(method-interceptors)和切点(pointcuts),从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,利用source-level的元数据功能,还可以将各种行为信息合并到你的代码中。
6.Spring Web: Spring中的 Web 包提供了基础的针对Web开发的集成特性,例如多方文件上传,利用Servletlisteners进行IOC容器初始化和针对Web的ApplicationContext。当与WebWork或Struts一起使用Spring时,这个包使Spring可与其他框架结合。
7.Spring Web MVC: Spring中的MVC封装包提供了Web应用的Model-View-Controller(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,它提供了一种清晰的分离模型,在领域模型代码和WebForm之间。并且,还可以借助Spring框架的其他特性。追问SpringMVC啊大哥,我哪有说Spring