Spring/Spring MVC
1. Spring是什么,好处有哪些,为什么要使用?
Spring是一个轻量级的开源的JAVAEE框架
好处:方便解耦简化开发,Aop编程支持,方便程序测试和进行事务操作,可以整合其他框架,降低Api开发难度
有以上的有点可以解决企业应用开发的复杂性
2. 解释一下什么是 AOP?
面向切面:在不改变原有方法的定义与使用,原程序的流程,开源改变原有方法的功能(增加功能)
底层原理:动态代理
3. 解释一下什么是 IOC?
控制反转(依赖注入):将创建对象的控制权交给Spring(容器)管理
实现:反射
IOC和di的区别:ioc可以理解为目的,di为手段。Ioc将对象创建权(new对象)反转给容器,di依赖ioc容器在对象创建的过程中,将对象依赖的属性通过配置进行注入。
底层原理:xml解析,工厂模式,反射
4. Spring有几种IOC容器,区别是什么?
BeanFactory:负责读取bean配置文档,管理bean的加载,实例化,维护bean之间的依赖关系,负责bean的生命周期
加载配置文件时候不对创建对象,在获取对象(使用)才会创建对象
ApplicationContext:是BeanFactory的子接口,除了上述功能外还提供了更完整的框架功能:国际化,资源访问,事件传递
加载配置文件时就会把配置文件对象进行创建
实现类
5. Spring 有哪些主要模块?
6. 什么是SpringBean,有几种类型Bean?
是spring Ioc容器管理的对象,由IOC容器管理来实例化、配置、装配和管理,基于用户提供给容器的配置元数据(注入方式)配置
有二种类型bean
普通bean:在配置文件中定义bean类型就是返回类型
工程bean:在配置文件中定义bean类型可以和返回类型不一样
7. Spring Ioc的注入方式?
基于xml配置:set注入,构造器注入
基于注解方式:注解方式注入
8. Spring可以注入null和属性值包含特殊符号么?
可以
9. Spring 中的内部Bean和外部Bean是什么?
外部bean用ref属性放入bean标签的id值
内部bean:当有一个学生bean和班级bean的时候,班级bean是学生bean的一个属性,可以在学生bean标签内使用property标签嵌套班级bean标签
10. Spring 中如何注入java集合?
注入属性值如下图
注入对象时如下图
使用bean标签设置集合对象属性值,在注入集合中使用list标签内用ref标签获取对象bean
11. Spring 支持几种 Bean 的作用域?
五种
默认Singleto:单例模式 Prototype 多例 Request 每个请求 session 会话周期
Global-session 全局session 后面3个基于applicationcontext下有效
12. Spring 中的 Bean 是线程安全的吗?
不是
13. Spring Bean 的生命周期?
实例化bean对象-属性赋值-处理Aware接口(当有使用的时候)-初始化-销毁
14. 什么是Spring自动装配,Spring 自动装配 Bean 有哪些方式,怎么使用?
根据指定装配规则,Spring自动将匹配的属性值注入
常用 byName根据bean的名称 byType根据类型
在bean标签里使用autowire属性 使用byName…
局限性:重写,不能装配简单数据类型,模糊特性
15. Spring Bean的注解有哪些?
@Component @Repository @Service @Controller
16. Spring Aop的专业术语
连接点:类里可以被增强的方法,这些方法称为连接点
关注点:在应用模块中实现以解决特定业务问题的方法
横切关注点:贯穿整个应用程序的关注点 像事务管理,权限,日志
切入点:实际被真正增强的方法,称为切入点
引入:引入允许在已存在类中增加的新的方法和属性
通知(增强):实际增强的逻辑部分称为通知(增强)
目标对象:被通知对象
通知类型:前置通知,后置通知,环绕通知,异常通知,最终通知
切面:动作,把通知应用到切入点的过程
代理:通知(增强后)后创建的对象
切点表达式:Aop切点表达式:execution(* com.dao.hibimpl.*.*(..))
第一个*代表所有的返回值类型
第二个*代表所有的类
第三个*代表类所有方法
最后一个..代表所有的参数。
AspectJ
17. jdbctemplate是什么?怎么使用
Spring框架对jdbc的封装,使用jdbctemplate方便对数据库操作
引入jar包,在spring配置文件配置数据库连接池,配置jdbctemplate对象注入DataSource
18. Spring 支持事务的管理方式?
编程式事务管理(灵活,难维护)和声明式事务管理(业务和事务管理分离,通过注解或xml配置管理方便)
声明式事务管理底层使用aop原理
19. Spring 事务传播行为是什么,有几种?
多事务方法调用的时候对数据库进行变化操作的管理
有七种
20. Spring 事务的隔离级别?
与mysql事务一样
20. Spring 事务实现方式有哪些?
xml配置:用aop:config声明要进行事务增强的切面,用tx:advice声明具体方法的事务属性,及应用到的事务管理器,此方法的优势比较明显,使用比较方便,但是缺点是不容易理解,配置容易失误
注解:使用@transactional注解配置声明事务,配置比较方便,程序员只要在service层代码设置即可实现。缺点就是后期调整很烦
21. 说一下 Spring 的事务隔离?
说几个读的问题,隔离级别,怎么解决
22. 说一下 Spring MVC 运行流程?
23. Spring MVC 有哪些组件?
24. @RequestMapping 的作用是什么?
25. @Autowired 的作用是什么?
原文:https://www.cnblogs.com/kmcl1314/p/14344438.html