Java基础九、Spirng/Spring MVC

90、为什么要使用spring?

1、spring提供ioc技术,容器会帮你管理依赖对象,从而不需要自己创建和管理依赖对象了,更轻松的实现了程序的解耦

2、spirng提供了事务支持,使得事务操作变的更加方便。

3、spring提供了面向切面编程,这样可以方便的处理某一类的问题。

4、更方便的框架集成,spring可以很方便的集成其他框架,如MyBatis,hibernate等。

91、什么是aop?

aop是面向切面面层,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。

简单来说就是统一处理某一“切面”类问题的编程思想,比如统一处理日志, 异常等。

92、IOC?

IOC: Inversionof Controll(控制反转),是spring的核心,就是由spring控制对象的生命周期和对象间的关系

93、spring有哪些模块

spring core

spring context

spring aop

spring dao :Data Access Object 提供了JDBC的抽象层

spring web 

spring web mvc

94、Spring的注入方式

注解方式注入

构造方法注入

setter属性注入

95、spring中的bean是线程安全的吗?

要从单例与原型bean分别进行说明

原型Bean,每次创建一个新的对象,也就是线程之间不存在Bean共享,所以不会有线程安全问题。

单例Bean:

  如果单例Bean是一个无状态Bean,也就是线程中不会对Bean的成员执行查询以外的操作,那么这个单例Bean的线程安全的。比如Spring mvc的Controller,Service,Dao等,这些Bean大多是无状态的,只关注方法本身。

       对于有状态的bean,Spring官方提供的bean,一般提供了通过ThreadLocal去解决线程安全的方法

96、spring支持几种bean的作用域

单例:只有一个bean

原型: 每次new一个实例

web环境作用域: 

  request: 每次http请求都会创建一个新对象

  session:同一个会话共享一个实例,不同会话使用不同实例

    global-session:全局会话,所有会话共享一个实例

97、spring 自动装配bean有哪些方式? 

no:默认方式,手动装配方式,需要通过ref设定bean的依赖关系

byName: 根据bean的名称注入对象依赖项

byType:它根据类型注入对象依赖项

构造函数: 通过构造函数来注入依赖项,需要设置大量的参数

autodetect: 容器首先通过构造函数使用autowire装配,如果不能,则通过byType自动装配

参考:spring自动装配Bean的五种方式

98、spring事务实现方式有哪些?

声明式事务:声明式事务也有两种实现方式,基于xml配置文件和注解方式(在类上添加@Transcation注解)

编码方式: 提供编码的形式管理和维护事务

参考:Spring事务管理之几种方式实现事务

99、事务的隔离级别? 

参考:Spring事务管理之几种方式实现事务

100、说下Spring mvc运行流程

1)、spring mvc请求交个dispatcherServlet

2)、DispatcherServlet查询一个或多个handleMapper,找到处理请求的Controller

3)、DispatcherServlet把请求交个Controller

4)、Controller处理完以后返回ModeAndView

5)、Dispatcher查询一个多个viewResolver视图解析器,找到ModelAndView对象指定的视图对象。

参考: SpringMVC源码解析(上)

101、Spring Mvc组件有哪些?

前置控制器: DispatcherServlet

映射控制器:HandleMapping

处理器:Controller

模型和视图: ModelAndView

视图解析器: ViewResolver

102、@RequestMapping的作用是什么?

将http请求映射到相应的类/方法上。

103|、 @Autowired的作用是什么?

@Autowired 它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过@Autowired 的使用来消除set/get方法

原文地址:https://www.cnblogs.com/linlf03/p/10486642.html