Thursday, October 25, 2012

Spring MVC හඳුනා ගනිමු...


Spring framework එකේ web component එක SpringMVC ලෙස හැඳින්වෙයි.

Robust web applications නිර්මාණය සඳහා එය පහසුකම් රැසක් ලබාදෙයි.

Spring MVC Framework එක නිර්මාණය කර ඇත්තේ එහි සෑම logic එකක්ම, සෑම function එකක්ම පහසුවෙන් configure කරගත හැකි ආකාරයෙනි.

එසේම Spring, Struts/JSF/WebWork/Tapestry වැනි අනෙකුත් ජනප්‍රිය web frameworks සමඟ පහසුවෙන් integrate කරගත හැක.

එයින් අදහස් වන්නේ අපට Spring වලට උපදෙස් දෙන්න පුළුවන් වෙනත් web framework එකක් භාවිතා කරන්න කියලා.

තවද Client ට view එක display කිරීම සඳහා JSP හෝ Servlet මත tightly couple වීමක් Spring හි නැත.

Velocity, Freemarker, Excel, PDF වැනි අනෙකුත් view technologies සමඟ integrate කිරීමට ඒ අනුව හැකියාව ලැබෙයි.
-----------------------------------------------------------


Spring Web MVC වලදී command object එක, එසේත් නැත්නම් form-backing object එක ලෙස ඕනෑම object එකක් භාවිතා කිරීමට හැකිය.

ඒ සඳහා framework specific interface එකක් හෝ base class එකක් implement කිරීම අවශ්‍ය නොවෙයි.

Spring හිදී data binding කිරීම highly flexible වේ.

Type mismatch වැනි දේ මෙහිදී සැලකෙන්නේ validation errors ලෙසය ; System errors ලෙස නොවේ.








Spring web MVC එකත් අනෙකුත් බොහෝ WEB MVC Frameworks මෙන් request-driven framework එකකි.

Central Servlet එකක් මත පදනම්ව ක්‍රියාත්මක වේ.

එය නියමිත controllers වෙතට requests, dispatch කරයි.[dispatch-පණිවිඩ යැවීම හෝ පණිවිඩකරු ]

Web application development, facilitate කරන අනෙකුත් functions ද මෙමඟින් ලබාදෙයි.

Spring හි DispatcherServlet එක Spring IOC Container සමඟ සම්පූර්ණයෙන්ම integrate වී ඇත.

එමනිසා එමඟින් Spring හි ඇති සෑම feature එකක්ම භාවිතා කිරීමට අවස්ථාව ලබාදෙයි.

Spring MVC 3.0 හි request process lifecycle එක පහත පරිදිය.

1. Client විසින් web container එක වෙත request එකක් (http request එකක් ලෙස) යවනු ලබයි.

2. මෙම request එක ලබාගනු ලබන්නේ DispatcherServlet (Front Controller) එක මඟිනි. ඉන්පසු එය request එකට අදාළ handler mappings සොයාගනු ලබයි.

3. Handler mappings වලට අනුව, request එක අදාළ controller එකට යවනු ලැබෙයි.

4. Controller එක request එක process කරයි. Model and View object  එකක්, Dispatcher Servlet එක වෙත return කරයි.

5. DispatcherServlet එක මඟින් view එක resolve කරයි.[ View resolver object එකක් මඟින් ]. Resolve වන්නේ JSP හෝ Freemarker හෝ Velocity ලෙස විය හැක.

6. ඉන්පසු selected view එක client වෙත display කරනු ලබයි.

Spring 3.0 features

1. Spring 3.0 web framework එක java 5, support කරයි. Annotations based configurations support කරයි. Generics, annotations, varargs වැනි java 5 features, Spring වලදී භාවිතා කළ හැක.


Spring 3.0 MVC Configuration

 Spring 3.0 MVC සඳහා entry point එක වෙන්නේ DispatcherServlet එකයි. DispatcherServlet යනු normal servlet class එකකි. එය HttpServlet, base class එකෙන් implement වෙයි. එය web.xml file එකේ සඳහන් කළ යුතුය.


<web-app>
<servlet>
<servlet-name>abc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>abc</servlet-name>
<url-pattern>*.html</url-pattern>
</servlet-mapping>

</web-app>

 *.html සහිත ඕනෑම url එකක් Spring MVC front controller එක call කරනු ලබයි.



DispatcherServlet එක initialized වූ විට එය [servlet-name]-servlet.xml file එක සොයා ගනී. එය තිබිය යුත්තේ web application එකේ WEB-INF folder එක තුළය.

Web application context එක යනු Application Context එකේ extension එකකි.[ Web application එක සඳහා අවශ්‍ය extra features සහිතව ]

WebApplicationContext එකට themes resolve කළ හැක.....

                                                   ඉතිරිය ඉදිරියට.......................