Java Spring FrameWork
Notes
Rest Architecture
REST (REpresentational State Transfer) New naming : HATEOAS (Hypermedia as the Engine of Application State)
- Client-serveur: Data remain on serveur and client is a separated entity
- No state: Each request provide to the server all the necessary information to provide the service
- Cache: The information sent by the server must contain, creation date, expiration date.
- Uniform Interface:
- Each resources has a unic Id;
- Resources have representation defined;
- Auto descriptive message: The content and how to read the message; (Like how the message is coded Utf8).
- Hypermedia Each access to the next step of the application is describe in the current message.
- Hyercharchie
- 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>
MVC Setup
- In the web.xml specify the location of the Spring Configuration File
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring/business-config.xml, classpath:spring/tools-config.xml</param-value> </context-param>
OR
<context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath*:META-INF/spring/applicationContext*.xml</param-value> </context-param>