介绍一下Spring中的主要功能
-
Spring有哪些优点?
- 轻量级:Spring在大小和透明性方面绝对属于轻量级的,基础版本的Spring框架大约只有2MB。
- 控制反转(IOC):Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。
- 面向切面编程(AOP): Spring支持面向切面编程,同时把应用的业务逻辑与系统的服务分离开来。
- 容器:Spring包含并管理应用程序对象的配置及生命周期。
- MVC框架:Spring的web框架是一个设计优良的[web MVC框架],很好的取代了一些web框架。
- 事务管理:Spring对下至本地业务上至全局业务(JAT)提供了统一的事务管理接口。
- 异常处理:Spring提供一个方便的API将特定技术的异常(由JDBC, Hibernate, 或JDO抛出)转化为一致的、Unchecked异常。
-
Spring注入集合的几种方式
-
<list>
类型用于注入一列值,允许有相同的值。 -
<set>
类型用于注入一组值,不允许有相同的值。 -
<map>
类型用于注入一组键值对,键和值都可以为任意类型。 -
<props>
类型用于注入一组键值对,键和值都只能为String类型。
-
-
Spring注入Bean的方式
- 设值注入(set方法)
- 构造器注入
- 工厂方法
bean的自动装配
-
自动装配的几种方式
- no:默认的方式是不进行自动装配,通过显式设置ref 属性来进行装配。
- byName:通过参数名 自动装配,Spring容器在配置文件中发现bean的autowire属性被设置成byname,之后容器试图匹配、装配和该bean的属性具有相同名字的bean。
- byType::通过参数类型自动装配,Spring容器在配置文件中发现bean的autowire属性被设置成byType,之后容器试图匹配、装配和该bean的属性具有相同类型的bean。如果有多个bean符合条件,则抛出错误。
- constructor:这个方式类似于byType, 但是要提供给构造器参数,如果没有确定的带参数的构造器参数类型,将会抛出异常。
- autodetect:首先尝试使用constructor来自动装配,如果无法工作,则使用byType方式。
开启注解装配
<context:annotation-config/>
开启自动扫描
注解
SpringMvc
-
SpringMvc和Struts2
的区别 - 控制器的注解
- 控制器中如何返回JSON
- 控制器是不是单例的
-
@RequestMapping
注解的作用 - 配置请求方式GET、POST
- 在
@RequestMapping
注解里面加上method=RequestMethod.GET
- 在
- 如何接受集合参数
- 配置视图解析器
- 配置文件上传
MyBatis
-
#{}和${}
的区别是什么? - xml除了insert和select、update之外,还有哪些标签
- mybatis分页和分页插件的原理
- 插入数据时返回主键
- 动态sql