Thursday 29 August 2013

Top Most Understanding Spring MVC

Spring MVC is mostly used with Spring for any web application development. It is very powerful and nice layered architecture for flow and configuration. It is very flexible to integrate with other web frameworks like struts. In interviews mostly flow of Spring MVC framework and configuration files are asked.
         Spring provides a Dispatcher Servlet called DispatcherServlet, which maps to an URI path pattern, in this case it is /myApp/*. You configure the servlet in web.xml.


Flow of the Spring MVC:
  •  The DispatcherServlet configured in web.xml file receives the request.
  • The DispatcherServlet finds the appropriate Controller with the help of HandlerMapping and then invokes associated Controller.
  • Then the Controller executes the logic business logic (if written by the programmer) and then returns ModeAndView object to the DispatcherServlet.
  • The DispatcherServlet determines the view from the ModelAndView object.
  • Then the DispatcherServlet passes the model object to the View.
  •  The View is rendered and the Dispatcher Servlet sends the output to the Servlet container. Finally Servlet Container sends the result back to the user.
    Sample Web.xml


    Controller
    Controllers are annotated with @Controller. The Spring MVC Dispatcher Servlet scans for all the conroller classes. There is no need to define the controllers as beans in the conext xml file, Spring automatically does that for us. All we have to do is adding one line in the context file
    web-application-config.xml, which is passed in as an initialization paramter to the Spring MVC Dispatcher Servlet.

    Sample Controller class:


    Above is an example of a controller. URI path /mvc/* is mapped to this controller. Each handler method further narrows it down by additional URI path pattern and http method. For helloWorld() method maps to /mvc  GET method. Handler methods have flexible signature and return type. In this example, they return three types:

    • void: view is implied by RequestToViewNameTranslator
    • string: view name
    • Model object: view is implied by RequestToViewNameTranslator

    Model

    Model in Spring MVC is actually a map, which contains beans (map values) and bean names (map keys). Model is completely separated from view and view rendering technology.
    A special type of model is Form Model. Form model is specified in the form tag as following:

    In the handler method, form model object can be passed in as method parameter, or returned as return value. By convention-over-configuration, Spring figures out form model object name by its class name. You can always use @ModelAttribute if the names does not match.

    Spring Servlet xml

    SpringMVC project folder structure


    Interview Questions:

    1) Benefits of Spring MVC over Struts?

    These are major benefits of Spring MVC :-

    1. We have clear separation between models, views and controllers in Spring.

    2. It is very versatile and flexible based on interfaces but Struts forces Actions and Form object into concrete inheritance.

    3. It provides both interceptors and controllers, thus helps to factor out common behavior to the handling of many requests.

    4. It can be configured with different view technologies like Freemarker, JSP, Tiles, Velocity, XLST etc. and also you can create your own custom view mechanism by implementing Spring View interface.

    5. In Spring MVC Controllers can be configured using DI (IOC) that makes its testing and integration easy.

    6. Web tier of Spring MVC is easy to test than Struts web tier, because of the avoidance of forced concrete inheritance and explicit dependence of controllers on the dispatcher servlet.

    7. Spring web layer built on top of a business object layer, which is considered a good practice. In Struts framework you need to implement your business objects.

    8. Struts force your Controllers to extend a Struts class but Spring doesn’t, there are many convenience Controller implementations that you can choose to extend.


    LinkWithin

    Related Posts Plugin for WordPress, Blogger...

    Labels

    Core Java programming core java interview question Core Java Faq's Servlets coding database jsp-servlet spring Java linux unix interview questions java investment bank Web Services Interview investment bank mysql Senior java developer interviews best practices java collection tutorial RMI SQL Eclipse FIX protocol tutorial tibco J2EE groovy java questions SCJP grails java 5 tutorial jdbc beginner error and exception Design Patterns Java Programming Tutorials fundamentals general object oriented programming xml Java Programs Hibernate Examples Flex JAMon Java xml tutorial logging Jsp Struts 2.0 Sybase and SQL Server debugging java interviews performance FIX Protocol interview questions JUnit testing WebSphere date and time tutorial experienced java IO tutorial java concurrency thread Ejb Freshers Papers IT Management Java Exapmle Java Script SQL and database tutorial examples Scwcd ant tutorials concurrency example and tutorial future state homework java changes java threading tricky Agile Business of IT Development JSTL Java JSON tutorial Java multithreading Tutorials PM Scrum data structure and algorithm java puzzles java tips testing tips windows 8 5 way to create Singleton Object Architect Interview Questions and Answers Architecture Architecure Bluetooth server as swing application that searches bluetooth device in 10 meter circle and show all devices. You can send file to any bluetooth device. C Programming CIO Callable Statement in Java Circular dependency of Objects in Java Comparable Example in Collection Custom annotation in Java Developer Interview Divide and rule example in java Drupal Example of Singleton Pattern FIX protocol ForkJoin Example in Java 7 Get data from dynamic table with Java Script Git HTML and JavaScript Health Hello World TCP Client Server Networking Program Hibernate Basics Hibernate Interview Question Answer J2EE Interview Question And Answers J2ME GUI Program JEE Interview QA JMS interview question Java J2EE Hibernate Spring Struts Interview Question Java System Property Java Threads Manager Portlets Provident Fund Read data from any file in same location and give the required result. Reading Properties File in Java Redpoint Rest WebService Client Rest Webservice Test SAL join with ven diagram SCP UNIX COMMAND SSL Singleton Pattern in Java Spring Bean Initialization methods and their order Spring Interview Questions Struts Struts 2.0 Basics Struts 2.0 Design Pattern Submit Html Form With Java Script On The Fly Unix executable For Java Program XOM DOM SAX XP books computers core java; core java; object oriented programming data structure; java investment bank; design pattern dtd duplicate rows in table get browser name with jquery grails podcast inner class java beginners tutorial java cache java networking tutorial java spring java util; java collections; java questions java.java1.5 linked list mailto function with all browser oracle database oracle duplicate rows orm schema social spring mvc questions struts transaction tricks tweet windows xslt