• Spring MVC学习笔记——POJO和DispatcherServlet


    POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。

    使用POJO名称是为了避免和EJB(Enterprise JavaBean)混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,没有业务逻辑,有时可以作为VO(value -object)或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法

    POJO是Plain OrdinaryJava Object的缩写不错,但是它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
    POJO实质上可以理解为简单的实体类,顾名思义POJO类的作用是方便 程序员使用数据库中的数据表,对于广大的程序员,可以很方便的将POJO类当做对象来进行使用,当然也是可以方便的调用其get,set方法。POJO类 也给我们在struts框架中的配置带来了很大的方便。
     
    POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。如果项目中使用了Hibernate框架,有一个关联的xml文件,使对象与数据库中的表对应,对象的属性与表中的字段相对应。
     

    POJO与javabean的区别

    POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。 Java Bean 是不能被跨进程访问的。JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被拿去用,这个扳子也提供多种功能(你可以拿这个 扳子扳、锤、撬等等),而这个扳子就是一个组件。一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO。POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象,其主要用来指代那些没有遵从特定的Java对象模型、约定或框架(如 EJB)的Java对象。理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范)
     

    DispatcherServlet作用

    DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。

    在web.xnl文件中配置DispatchServlet

    DispatcherServlet主要用作职责调度工作,本身主要用于控制流程,主要职责如下:

      1、文件上传解析,如果请求类型是multipart将通过MultipartResolver进行文件上传解析;
      2、通过HandlerMapping,将请求映射到处理器(返回一个 HandlerExecutionChain ,它包括一个处理器、多个HandlerInterceptor拦截器);
      3、通过HandlerAdapter支持多种类型的处理器( HandlerExecutionChain中的处理器);

      4、通过ViewResolver解析逻辑视图名到具体视图实现;
      5、本地化解析;
      6、渲染具体的视图等;
      7、如果执行过程中遇到异常将交给HandlerExceptionResolver来解析。

    上下文关系,也是在web.xml中配置

    集成Web环境的通用配置:

    	<!-- Spring集成WEB环境的通用配置,一般用于加载除Web层的Bean(如DAO、Service等),以便于与其他任何Web框架集成 -->
    	<!-- Spring 的监听器可以通过这个上下文参数来获取beans.xml的位置 -->
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>
    			classpath:beans.xml
    		</param-value>
    	</context-param>
    	<!-- 创建Spring的监听器 -->
    	<listener>
    		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    	</listener>
    

    如上配置是Spring集成Web环境的通用配置;一般用于加载除Web层的Bean(如DAO、Service等),以便于与其他任何Web框架集成。

    重要的接口和类的简单说明:

    DispatcherServlet前端控制器,用于接收请求

    HandlerMapping接口用于处理请求的映射

      DefaultAnnotationHandlerMapping:HandlerMapping接口的实现,用于把一个URL映射到具体的Controller类上。

    HandlerAdapter接口用于处理请求的映射

      AnnotationMethodHandlerAdapter:HandlerAdapter接口的试下,用于把一个URL映射到对应Controller类的某个方法上。

    ViewResolver接口用于解析View

      InternalResourceViewResolver:ViewResolver接口的实现,用于把ModelAndView的逻辑视图名解析为具体的View。

  • 相关阅读:
    php 正则检索中文
    PHP 文件
    mysql优化のLIKE
    前端小知识
    Oracle数据库自动备份[转载]
    错误: 在类 com.js.sort.ArraySort 中找不到 main 方法, 请将 main 方法定义为: public static void main(String[] args) 否则 JavaFX 应用程序类必须扩展javafx.application.Application
    idea中deployment点击加号没有出现artifact
    数据查不到(空格问题)
    java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.String
    org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.scheduling.TaskScheduler' available
  • 原文地址:https://www.cnblogs.com/tonglin0325/p/5495899.html
Copyright © 2020-2023  润新知