1、 什么是spring?spring的两大核心技术是什么。
spring是一个开源的,轻量级的控制反转IoC和面向切面AOP的容器框架
AOP(面向切面编程)是面向对象编程的一个补充
2、 什么是ioc,它有什么作用?
应用本身不负责创建依赖对象,把它交给外部容器的过程
解耦
3、 什么是DI,DI和ioc区别?
IOC(控制反转)和DI(依赖注入)
依赖注入,在运行期由外部容器动态地将依赖对象注入组件
IOC强调将对象的创建权反转到IOC容器中
DI强调IOC容器将对象的依赖关系动态注入对象之中
DI是IOC具体的实现过程
4、 Bean的命名方式?
id、name
可以用name命名,和id一样都是不能有相同值的
name命名可以有多个值,中间用逗号隔开
id命名不可以有多个值
5、 Bean的作用域 ?
Singleton、prototype、request、session、globalSession
Singleton:单例模式对象只实例化一次、prototype:多例模式调用一次bean就实例化一次
6、 属性依赖注入有几种方式,分别怎么实现属性的依赖注入?
属性setter方法注入和p命名空间
构造参数注入和c命名空间
属性自动注入 全限定类名
7、 什么叫做装配,装配的方式有哪些?
由容器负责创建各个对象,并创建各个对象间的依赖关系
XML显示装配、注解的方式自动装配、java代码装配
8、 如何通过注解装配bean|实例化bean的注解有哪些?|通过注解实例化bean后在spring容器中bean的名称是什么?
@Component、@Controller、@Service、@Repository
@Resource、@Autowired、@Qualifier、@pointcut、@Aspect
接口实现类首字母小写
9、 @Resource、@Autowired注解的区别?
@Resource:按照名称查找找不到时用类型查找
@Autowired:按照类型查找
10、 什么是aop,他的作用?
采取横向抽取机制取代了纵向继承体系的重复代码
在修改原来代码的基础上实现功能的扩展
11、 Aop的原理?
在运行期通过代理方式向目标类织入增强代码
12、 什么是连接点?切入点? 什么是增强?什么是目标?什么是代理?什么是切面?
连接点:指被拦截到的点 取款的方法
切入点:指我们要对哪些连接点进行拦截 指明哪些方法要被拦截
增强:拦截到连接点后要通知 验证用户
目标:被通知或代理的对象 取款所在的类接口的实现类
代理:一个类被织入增强后就餐生一个结果代理类 生成的动态代理类
动态代理类=目标对象+增强代码
织入:将增强应用到目标对象创建新的代理对象的过程 过程
切面:切入点和通知的结合 切入点+通知
13、 如何通过xml配置的方式来配置aop?
<aop:config>
<aop:aspect>
<aop:pointcut>
<aop:before></aop:aspect></aop:config>
14、 如何通过注解的方式配置AOP?
<aop:aspectj-autoproxy>在xml中开启注解开关
@Aspect、@pointcut、@before……
15、 AOP的增强类型和之间的区别?
环绕通知和前置、后置的区别:
环绕通知能决定是否调用目标方法、能修改返回值
返回通知和后置的区别:
返回通知可以获取到目标函数的返回值如果目标方法抛异常返回不执行
16、 什么是事务,事物的特性?
一些操作要么全发生要么全不发生
原子性:事务中的操作要么全发生要么全不发生
一致性:事务前后数据的完整性保持一致
隔离性:数据库被多个用户访问此事物不能被其他事物干扰用户之间数据要隔离
持久性:一个事物一旦被提交它对数据的改变就是永久的
17、 事物的隔离级别?
Isolation-default:数据库默认
Isolation-read-uncommitted:可能导致脏读不可重复读幻读
Isolation-read-committed:可以防止脏读
Isolation-prepeatable-read:可以防止脏读不可重复读
Isolation-seriablizable:完全服从ACID隔离级别
18、 什么是事务传播行为? 有什么用?
新的事务是否要被启动或是挂起,或者方法是否要在事务环境中运行
19、 什么是声明式事物?
基于Spring的aop配置控制,用注解的方式声明事务
20、 怎样用xml配置事物?
事务管理器DataSourceTransactionManager、
事务通知<tx:advice><tx:attributes><tx:method>
事务aop配置<aop:config><aop:pointcut><aop:advisor>
21、 怎样用注解配置事物?
开启事务注解开关<tx:annotation-driven>
在要添加事务的类上添加@Transactional(propagation=Propagation.REQUIRED,
isolation=Isolation.DEFAUL)
Propagation:事务的传播行为
Isolation:事务的隔离级别
readOnly:只读
rollbackFor:发生哪些异常回滚
NoRollbackFor:发生哪些异常不回滚
rollbackForClassName:根据异常类名回滚
22、 spring如何交给tomcat管理|spring在web.xml中如何配置。
ContextLoaderListener
<context-param>
<param-name> contextConfigLocation
<param-value> classpath:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
23、 sprinMVC如何交给tomcat管理|springMVC在web.xml中如何配置。
<servlet>
<servlet-name>
<servlet-class>
<init-param>
<param-name>
<param-value>
<load-on-startup>
<servlet-mapping>
<servlet-name>
<url-pattern>
24、 什么是springMvc?springMvc的执行流程?
Web层的MVC框架
用户发送请求到前端控制器请求转发到处理器映射器返回一个Handler给前端控制器将Handler交给处理器适配器再讲Handler交给真正的Handler进行编写返回一个ModelAndView给处理器适配器再返回给前端控制器将逻辑视图交给视图解析器解析成真正的物理地址
25、 什么是mvc,mvc执行流程?
是一种设计模式设计思想
用户发送请求给控制器委托模型进行处理模型返回视图要展示的模型数据控制器将模型给视图试图展示模型数据返回给用户响应
26、 springMvc的组件有哪些。
处理器映射器、处理器适配器、后端控制器、视图解析器
27、 配置视图解析器有什么作用?
将逻辑视图解析成物理地址
@RequestMapping是什么?有什么作用?和属性。
@RequestMapping()是一个用来处理请求地址映射的注解,
value="/user",method=RequestMethod.POST
28、 springMvc接收的参数类型有哪些?
简单类型、实体类、数组、Vo、map、默认类型
HttpServletRequest、HttpServletResponse、HttpSession、InputStream、OutputStream、Reader、Writer
@RequestParam绑定参数
@RequestHeader从头部信息绑定参数
@CookieValue从cookie中绑定参数
@PathVariable从URL中绑定参数
29、 页面数据回显的方式?
ModelAndView、Model、map、request
30、 ModelAndView和Model回显数据的区别有哪些?
Model:只用来传输数据,每次请求都必须会带的
ModelAndView:既包含视图信息也包含模型数据信息,需要自己新建的
二者API不同
31、 handler方法入参上的注解有哪些,分别有什么作用。
@RequestParam指定参数
@PathVariable从URL绑定参数
32、 handler方法如何返回json格式的数据
使用response返回json
在方法上添加@ResponseBody
配置处理器适配器
33、 springMVC能否实现请求转发与重定向,语法结构是什么?
请求转发Forward:/路径地址
重定向Redirect:/路径地址
请求转发:url地址不变,只请求一次,可以获取第一次请求中的参数;只能站内转发
重定向:url地址变请求两次,不能获取第一次请求中的参数。可以跳转到站外的地址
34、 spirngMVC如何配置统一编码,
jsp页面编码方式为UTF-8
formbiandan的提交方式为post
在web.xml里边添加过滤器编码
35、 springMVC统一异常处理的思路。
系统的dao、service、controller出现异常都向上抛最后由SpringMVC前端控制交由异常处理器进行异常处理
36、 <mvc: annotation-driven/>是一种简写形式,替代了什么配置。
替代了处理器映射器和处理器适配器
37、 当DispatcherServlet请求映射配置为"/"时,如何实现静态资源的放行?
1、<servlet-mapping>
<servlet-name>default</>
<url-pattern>*.js</>
2、<mvc:resources location="/easyUI/" mapping="/easyUI/**"/>
<mvc:resources location="/js/" mapping="/js/**"/>
3、<mvc:default-servlet-handlet/>
38、 什么是restful风格,在restful风格开发中,四个请求方式的动词分别表示什么操作?
约定大于规范
Get:查询
POST:添加
PUT:更新
DELETE:删除
39、 springMvc是如何实现提交put和delete请求的
在web.xml中配置拦截headerHTTPMethodFile
在表单中写<input type=”hidden”name=”_method”value”delete/put”/>
40、 如何让springMVC支持文件上传
提交类型必须为file类型,提交方式为post,
form表单中添加enctype=multipart/form-data
在springMVC中配置CommonsMultipartResolver的bean
Name= defaultEncoding,value=UTF-8
41、 springMVC支持多视图解析吗?
支持
42、 三大框架整合的思路?
1.先整合dao层=mybatis和spring整合
通过spring管理mapper接口,使用mapper的扫描枪自动扫描mapper接口在spring中进行注册。
2.整合service层
通过spring管理service接口;
使用配置的方式将service接口配置在spring配置文件中
实现事务控制,(事务控制一般都是放在service中)
3.整合springMVC
由于springmvc是spring的模块,不需要整合。