1.spring是什么及spring的优点?
:1.spring是一个轻量级的ioc和aop容器框架。
2.spring是非侵入式的,基于spring开发的应用一般不依赖于spring的类
3.spring是个容器,因为它包含并且管理应用对象的生命周期和配置,比如对象的创建,销毁,回调等。
4.spring提供对事物的管理
5.spring对主流的框架提供了很好的集成支持,比如和hibernate springmvc等框架的集成。
2.讲一讲你对aop和ioc的理解?
:ioc 控制反转。也称为DI(依赖注入),依赖对象的创建和维护交给了spring容器来管理,应用程序本身不需要负责依赖对象的创建和维护,简单理解就是把原本应该我们去new对象这个操作转到spring容器中执行
:aop 面向切面编程。本质就是拦截器,比如项目中的事务和日志就是很好的体现了aop,
比如,操作数据库的增删改之前都需要开启事物,增删改之后都需要提交事物,这样我们就可以写一个拦截器,底层就是采用动态代理实现前置通知和后置通知,在前置通知中开启事物,在后置通知中提交事物,在spring.xml中配置通知即可,spring的事务管理底层就用到了aop。
2.spring的注入方式有哪些?
:setter注入 如果依赖关系比较复杂,那么构造方式注入会导致构造方法相当庞大,此时使用设值方式更为简洁
:构造注入 构造期间创造一个完整的对象 所有的依赖关系都在构造方法中设定 依赖关系集中体现。
: 接口注入 接口注入因具备侵入性 这种方法已经不用了
3.如何定义bean的作用域,作用域之间的区别?
:定义bean的作用域,在中有一个scope的属性,取值有5种
单例模式(默认),也就是说这种范围不管接收到多少个请求,每个容器中只有一个bean实例
4.什么是spring的自动装配?并解释一下自动装配的各种模式?
:无需在spring配置文件中描述javabean之间的依赖关系,ioc容器会自动建立javabean之间的关联关系。
: 4.1 根据属性名称自动装配
4.2 根据数据类型自动装配
4.3 根据构造方法自动装配
5.可以再spring中注入null或空字符串吗?
:可以
6.介绍一下spring的事务管理?
:取钱的例子 事物回滚。注解式事物,声明式事物。
7.spring如何配置数据库驱动?
:c3p0 druid
SpringMvc的工作流程?
①. SpringMVC将所有的请求都提交给DispatcherServlet
②. DispatcherServlet收到请求调用HandlerMapping处理映射器
③. 处理映射器找到具体的处理器,生成处理器对象返回给DispatcherServlet
④. DispatcherServlet调用HandlerAdapter处理器适配器
⑤. HandlerAdapter经过适配调用具体的处理器Controller
⑥. Controller进行业务逻辑处理后,会返回一个ModelAndView
⑦. HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet
⑧. DispatcherServlet将ModelAndView传给ViewResolver视图解析器
⑨. ViewResolver解析后返回具体的View
⑩. DispatcherServlet根据View进行渲染视图并响应用户
springmvc怎么防止SQL注入?
:使用SpringMVC的拦截器实现防止SQL注入