首页 > 编程语言 > 详细

Spring与MVC

时间:2021-01-29 15:04:52      阅读:13      评论:0      收藏:0      [点我收藏+]

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 的作用是什么?

Spring与MVC

原文:https://www.cnblogs.com/kmcl1314/p/14344438.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!