一、简述spring框架的优点
- 非侵入式设计;
- 降低耦合性,方便开发
- 支持AOP编程
- 支持声明式事务
- 方便程序的测试
- 方便继承各种优秀框架
- 降低Java EE API 的使用难度
二、简述控制反转和依赖注入的概念
- 控制反转(IoC)是面向对象编程中的一个设计原则,用于降低程序代码之间的耦合度。使用spring框架后,对象的实例不再由调用者来创建,而是由Spring的IoC容器来创建,IoC容器会负责控制程序之间的关系,而不是由调用者的程序代码直接控制。
- 依赖注入(DI)是指IoC容器在运行期间动态的将某种依赖资源注入到对象中。例如,将对象B注入(赋值)给对象A的成员变量。依赖注入的基本思想是,明确地定义组件接口,独立开发各个组件,然后根据组间的依赖关系组装运行。
三、Bean的装配方式------基于XML的装配
- 属性setter方法注入 ,属性setter方法注入要求Bean必须满足以下两点要求。
- Bean类必须提供一个默认的无参构造方法。
- Bean类必须为需要注入的属性提供对应的setter方法。
- 代码示例
<bean id="user" class="com.cyqh.User"> <property name="id" value="1"/> <property name="name" value="张三"/> <property name="password" value="123"/> </bean>
四、简述AOP
- AOP主张将程序中相同的业务逻辑进行横向隔离,并将重复的业务逻辑抽取到一个独立的模块中,以达到提高程序可重用性和开发效率的目的。AOP的使用使开发人员在编写业务逻辑时可以专心于核心逻辑,而不用过多的关注其他业务逻辑的实现,这不但提高了开发效率,而且增强了代码的可维护性。
五、事务管理的方式
- 编程式事务管理:通过编写代码实现的事务管理,包括定义事务的开始、正常执行后的事务提交和异常时的事务回滚。
- 声明式事务管理:通过AOP技术实现的事务管理,其主要思想是将事务管理作为一个“切面”代码单独编写,然后通过AOP技术将事务管理的“切面”代码植入到业务目标类中。
六、Spring MVC的特点
- Spring MVC是Spring框架的后续产品,可以方便地使用Spring框架所提供的其他功能。
- Spring MVC使用简单,很容易设计出干净简洁的Web层。
- Spring MVC支持各种请求资源的映射策略。
- Spring MVC具有非常灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架的API。
- Spring MVC支持国际化,可以根据用户区域显示多国语言。
- Spring MVC支持多种视图技术,支持JSP,Velocity和FreeMarker等视图技术。
- Spring MVC灵活性强,易扩展。等等。
七、Spring MVC的执行流程
- 用户通过浏览器向服务器发送请求,请求会被Spring MVC的前端控制器(DispatcherServlet)拦截。
- DispatcherServlet拦截到请求后,会调用处理器映射器(HandlerMapping)。
- 处理器映射器根据请求URL找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
- DispatcherServlet会通过返回信息选择合适的处理器适配器(HandlerAdapter)。
- HandlerAdapter会调用并执行处理器(Handler),这里的处理器是指程序中编写的Controller类,也被称之为后端控制器。
- Controller执行完成后,会返回一个ModelAndView对象,该对象中会包含视图名或包含模型和视图名。
- HandlerAdapter将ModelAndView对象返回给DispatcherServlet。
- 前端控制器请求视图解析器根据逻辑视图名解析真正的视图。
- ViewResolver解析后,会向DispatcherServlet中返回具体的视图(View)对象。
- DispatcherServlet对View进行渲染(即将模型数据填充至视图中)。
- 前端控制器向用户响应结果。
- 图示过程:
八、Spring MVC数据绑定的过程
- Spring MVC将ServletRequest对象传递给DataBinder。
- 将处理方法的入参对象传递给DataBinder。
- DataBinder调用ConversionService组件进行数据类型转换、数据格式化等工作,并将ServletRequest对象中的消息填充到参数对象中。
- 调用Validator组件对已经绑定了请求消息数据的参数对象进行数据合法性校验。
- 校验完成后会生成数据绑定结果BindingResult对象,Spring MVC会将BindingResult对象中的内容赋给处理方法的相应参数。
- 图示过程:
九、Spring 和 Mybatis整合--------application-dao.xml文件的配置
- 引入属性文件
<context:property-placeholder location="classpath:jdbc.properties"/>
- 配置数据源
<bean id="dataSource" calss="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean>
- 创建SqlSessionFactory对象
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--数据源--> <property name="dataSource" ref="dataSource"/> </bean>
- 扫描dao包,创建动态代理对象,会自动存储到Spring IoC容器中
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.cyqh.dao"/> </bean>
本学期的考试复习内容重点就是以上所描述,期末加油冲呀!!!