Java Spring FrameWork: Difference between revisions

From Objectif Client Inc
Jump to navigation Jump to search
Line 74: Line 74:
     <display-name>Spring ExoTest</display-name>
     <display-name>Spring ExoTest</display-name>
     <description>Spring ExoTest Demo</description>
     <description>Spring ExoTest Demo</description>
<!-- A context listner to load other spring context xml file -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>


<!-- Context Config File Location (where are located the configuration file) -->
<!-- Context Config File Location (where are located the configuration file) -->
Line 81: Line 86:
     </context-param>
     </context-param>


<!-- a listner to  -->
<!-- Handles Spring requests -->
     <listener>
     <servlet>
         <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
         <servlet-name>myapplication</servlet-name>
     </listener>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 
        <init-param>
 
            <param-name>contextConfigLocation</param-name>
            <param-value>WEB-INF/spring/webmvc-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
     </servlet>
   
    <servlet-mapping>
        <servlet-name>myapplication</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>


<!-- timeout Setting -->
<!-- timeout Setting -->

Revision as of 20:13, 5 December 2014

Notes

Rest Architecture

REST (REpresentational State Transfer) New naming : HATEOAS (Hypermedia as the Engine of Application State)

  1. Client-serveur: Data remain on serveur and client is a separated entity
  2. No state: Each request provide to the server all the necessary information to provide the service
  3. Cache: The information sent by the server must contain, creation date, expiration date.
  4. Uniform Interface:
    1. Each resources has a unic Id;
    2. Resources have representation defined;
    3. Auto descriptive message: The content and how to read the message; (Like how the message is coded Utf8).
    4. Hypermedia Each access to the next step of the application is describe in the current message.
  5. Hyercharchie
  6. Code-on-Demande(facultative): Script excecution on the client retreived from the server.


| Stackoverflow what exactly is restful programming

Maven Setup

<!-- General repository to get package -->  
<repositories>
    <repository>
        <id>io.spring.repo.maven.release</id>
        <url>http://repo.spring.io/release/</url>
        <snapshots><enabled>false</enabled></snapshots>
    </repository>
</repositories>

<!-- Maven bom to manage dependencies between jar -->  
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-framework-bom</artifactId>
            <version>4.1.2.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<!-- Dependencies without version because they are managed by Maven Bom --> 
<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
    </dependency>
</dependencies>

Setup

web.xml

1 In the web.xml specify the location of the Spring Configuration File

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://java.sun.com/xml/ns/javaee"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         id="WebApp_ID" version="2.5">

<!-- Application Name (for Information only) -->
    <display-name>Spring ExoTest</display-name>
    <description>Spring ExoTest Demo</description>

<!-- A context listner to load other spring context xml file -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

<!-- Context Config File Location (where are located the configuration file) -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath*:META-INF/spring/applicationContext*.xml</param-value>
    </context-param>

<!-- Handles Spring requests -->
    <servlet>
        <servlet-name>myapplication</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>WEB-INF/spring/webmvc-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>myapplication</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

<!-- timeout Setting -->
    <session-config>
        <session-timeout>10</session-timeout>
    </session-config>


<!-- Error page Management java error and page no found 404  -->
    <error-page>
        <exception-type>java.lang.Exception</exception-type>
        <location>/uncaughtException</location>
    </error-page>
    
    <error-page>
        <error-code>404</error-code>
        <location>/resourceNotFound</location>
    </error-page>