Java总结(spring、ajax、mybatis、bootstrap)
不间断更新。。。。
Spring(由Rod Johnson创建)?
它是一个一站式(full-stack全栈式)框架,
提供了从表现层-springMVC到业务层-spring再到持久层-springdata的一套完整的解决方案。
我们在项目中可以只使用spring一个框架,它就可以提供表现层的mvc框架,持久层的Dao框架。
它的两大核心IOC和AOP更是为我们程序解耦和代码简洁易维护提供了支持。。
Spring的优点:
答:
1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦
2.可以使用容易提供的众多服务,如事务管理,消息服务等3.容器提供单例模式支持
4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能
5.容器提供了众多的辅助类,能加快应用的开发
6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等
7.spring属于低侵入式设计,代码的污染极低
8.独立于各种应用服务器
9.spring的DI机制降低了业务对象替换的复杂性
10.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring 的部分或全部
AJAX:
是一种用来改善用户体验的技术,其本质是利用浏览器提供的一个特殊对象(XmlHttpRequests简称ajax对象)
向服务器发送异步请求,服务器返回部分数据,浏览器利用这些数据对当前页面做局部更新,
整个过程页面无刷新,不打断用户操作。
Mybatis:开源的持久层框架,底层还是JDBC,持久层框架包括SQL Maps和Data Access Objects(DAOs)
bootstrap: 是最受欢迎的Html、Css、Js框架,用于开发响应式布局,移动设备优先的web项目。
一、什么是spring?
定义:
Spring是一个开源的轻量级的应用开发框架,
目的:
用于简化企业级应用程序开发,降低侵入性;
本质:
管理软件中的对象,即创建对象和维护对象之间的关系。
二、何时使用Spring?
当需要管理JavaBean对象的时候就可以使用,spring是最简洁的对象管理方案之一。
三、请说说Spring Bean的生命周期?
1、Spring容器 从XML 文件中读取bean的定义,并实例化bean。
2、Spring根据bean的定义填充所有的属性。
3、如果bean实现了BeanNameAware 接口,Spring 传递bean 的 ID 到 setBeanName方法。
4、如果Bean 实现了 BeanFactoryAware 接口, Spring传递beanfactory 给 setBeanFactory 方法。
5、如果有任何与bean相关联的BeanPostProcessors,Spring会在postProcesserBeforeInitialization()方法内
调用它们。
6、如果bean实现IntializingBean了,调用它的afterPropertySet方法,如果bean声明了初始化方法,
调用此初始化方法。7、如果有BeanPostProcessors 和bean 关联,这些bean的postProcessAfterInitialization() 方法将被调用。
8、如果bean实现了 DisposableBean,它将调用destroy()方法。
四、使用Spring框架的好处是什么?
轻量:Spring 是轻量的,基本的版本大约2MB。
控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
容器:Spring 包含并管理应用中对象的生命周期和配置。
MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。五、springMVC有几大组件?及其分别作用?
1.DispatcherServlet:前端控制器
2.HandlerMapping:映射处理器
3.Controller:控制器,具体处理请求并响应。
4.ModeAndView:用于封装处理结果
5.ViewResolver:视图解析器。六、SpringMVC工作原理:
1.客户端发送请求到DispatcherServlet
2.DispatcherServlet查询handlerMapping找到处理请求的Controller
3.Controller调用业务逻辑后,返回ModelAndView
4.DispatcherServlet查询ViewResolver,找到ModeAndView指定视图
5.视图将结果返回到客户端
七、SpringMvc的控制器是不是单例模式,如果是,有什么问题,怎么解决?
是单例模式,所以在多线程访问的时候有线程安全问题,不要用同步,会影响性能的,
解决方案是在控制器里面不能写字段。
八、SpringMVC怎么样设定重定向和转发的
1、在返回值前面加"forward:"就可以让结果转发,譬如"forward:user.do?name=method4"
2、在返回值前面加"redirect:"就可以让返回值重定向,譬如"redirect:http://www.baidu.com"九、MyBatis(IBatis)的好处是什么 ?
ibatis把sql语句从Java源程序中独立出来, 放在单独的XML文件中编写,给程序的维护带来了很大便利。
ibatis封装了底层JDBC API的调用细节,并能自动将结果集转换成Java Bean对象, 大大简化了Java数据库编程的重复工作。
因为Ibatis需要程序员自己去编写sql语句, 程序员可以结合数据库自身的特点灵活控制sql语句,
因此能够实现比hibernate等全自动orm框架更高的查询效率,能够完成复杂查询.
十、MyBatis里面的动态Sql是怎么设定的?用什么语法?
MyBatis里面的动态Sql一般是通过if节点来实现,通过OGNL语法来实现,但是如果要写的完 整,
必须配合where,trim节点,where节点是判断包含节点有内容就插入where,否则不插 入,trim节点是用来判断如果动态语句是以and 或or开始,
那么会自动把这个and或者or取掉。
十一、讲下MyBatis的缓存
MyBatis的缓存分为一级缓存和二级缓存, 一级缓存放在session里面,默认就有,二级缓存放在它的命名空间里,默认是打开的,
使用二级缓存属性类需要实现Serializable序列化接 口(可用来保存对象的状态),可在它的映射文件中配置。
十二、谈谈你对ssm框架的认识
ssm框架是spring MVC ,spring和mybatis框架的整合,
是标准的MVC模式,
将整个系统划分为表现层,controller层,service层,DAO层四层
使用spring MVC负责请求的转发和视图管理spring实现业务对象管理,mybatis作为数据对象的持久化引擎。