Java总结(spring、ajax、mybatis、bootstrap)

不间断更新。。。。

Java总结(spring、ajax、mybatis、bootstrap)


Spring(由Rod Johnson创建)?

    它是一个一站式(full-stack全栈式)框架,

提供了从表现层-springMVC到业务层-spring再到持久层-springdata的一套完整的解决方案。

我们在项目中可以只使用spring一个框架,它就可以提供表现层的mvc框架,持久层的Dao框架。

它的两大核心IOCAOP更是为我们程序解耦和代码简洁易维护提供了支持。

Spring的优点:

答:

    1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 

    2.可以使用容易提供的众多服务,如事务管理,消息服务等 
    3.容器提供单例模式支持 
    4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 
    5.容器提供了众多的辅助类,能加快应用的开发 
    6.spring对于主流的应用框架提供了集成支持,如hibernateJPAStruts 
    7.spring属于低侵入式设计,代码的污染极低 
    8.独立于各种应用服务器 
    9.springDI机制降低了业务对象替换的复杂性 

    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作为数据对象的持久化引擎。