Yuav ua li cas rau ib daim ntawv thov lub caij nplooj hlav MVC chaws?

Spring MVC Application

Lub caij nplooj ntoos hlav MVC Application – Yuav sau daim ntawv code?

Txheej txheem cej luam:

Nyob rau hauv cov era tam sim no ntawm txoj kev loj hlob thov web, muaj cov qauv-saib-xws li coj rau Java kom ntau. Feem ntau ntawm cov coj thiab integrate nrog rau lub caij nplooj hlav. Txawm li cas los, raws li tej integrations tshwm sim rau lub caij nplooj ntoos hlav tus kheej heev module rau MVC. Kom deb li deb txoj kev enterprise daim ntaub ntawv yog txhawj xeeb, Lub caij nplooj ntoos hlav Framework yog undoubtedly qhov zoo tshaj plaws rau ob peb lag luam. Tus thawj vim li cas rau qhov no yog qhov xwm ntawm lub caij nplooj ntoos hlav, ib yam dab tsi uas outdoes java Enterprise Edition platform. Nws tseem yog pob tshab. Li ntawd, Siv lub caij nplooj ntoos hlav MVC rau txoj kev loj hlob ntawm Web site yuav pab tau koj txog li ob peb hom kev pab cuam leveraging.

Nyob rau cov tshooj no, Peb yuav ua tiag tshawb xyuas ntau yaam ntawm lub caij nplooj ntoos hlav MVC Framework nrog rau tej yam kev coding piv txwv.







Lub caij nplooj ntoos hlav MVC

Raws li twb tau hais, Lub caij nplooj ntoos hlav MVC yog paub tias yuav muaj ib tug qauv-view-controller architecture uas yog meant rau txoj kev loj hlob ntawm cov ntaub ntawv uas yog ob leeg yooj ywm thiab loosely kajsiab. MVC cov qauv siv rau hauv peb qhov chaw loj – tso zis, Lag luam thiab UI.

Qauv – Qhov no yog ua los ntawm daim ntawv thov thiab cov khoom uas lawv hnov mob.

Saib – Qhov no visualizes cov qauv thiab feem coob ua los ntawm cov HTML code uas yog ib tug browser yuav txhais tau.

Xws li – Tus neeg muaj ntawv pov thawj zov me nyuam yog meant rau kev thov kom muaj kev thov, Tom qab nws nrog cov qauv build-up thiab ces kis nws mus saib rau zaub.

Caij nplooj ntoos hlav MVC Architecture

Lub caij nplooj ntoos hlav promises yuav muab ib cov tshuaj uas ntxuav tag nrho koj cov ntaub ntawv enterprise. Khaws cov kab nrog no, Nws muaj li nees nkaum modules uas tej zaum yuav tau khaws raws li koj txoj cai.

Core Container Layer

  • Qhov no module consists ib txhia tus neeg ua hauj lwm thiab muaj cov IoC (Inversion of Tswjhwm) thiab Nyob ntawm seb yog hom kab quav ntseg.
  • Nws muaj nws ib module uas muaj ib qho dluab ntawm ib tug qauv Hoobkas.
  • Cov ntsiab lus teb module ua tau rau cov tub ntxhais thiab beans modules thiab yog txhais tau tias txhais tau hais tias thiab configured khoom.
  • Tus SpEL yog lwm qhov uas tso cai rau lub querying thiab manipulation cov khoom ntawm khiav ntawm runtime.

Cov ntaub ntawv kawm tiav

  • Tus JDBC module muaj ib txheej abstraction teev uas pab koj tsis txhob tedious coding.
  • ORM meant pab dawb huv lub hom phiaj rau object-relational mapping APIs li Castor, XMLBeans, XStream, yam.
  • Nws muaj nws ib qho kev pab Java Messaging module rau qhov ntau lawm thiab kev pab.
  • Lub module transaction yog rau tus tswj programmable thiab declarative transaction.

Neeg ua hauj lwm hauv Web site

  • Lub Web module yog lub luag hauj lwm los muab web-oriented nta. Cov no yog cov yam koj nyiam thawj kawg ntawm IoC containers, txheej txheem, yam.
  • Lub Web-MVC module muaj caij nplooj ntoos hlav qauv-saib-controller rau cov ntaub ntawv web.
  • Lub Web-Socket module muaj ob-txoj kev sib txuas lus ntawm tus neeg tau kev pab thiab muab rau neeg noj, raws li cov WebSockets.
  • Lub Web-Portlet module paub tias muaj MVC siv nyob rau hauv ib lub chaw nres nkoj portlet thiab muaj ntsis zoo ib yam li cov Web-Servlet module.

Kws lijchoj Miscellaneous

  • Nws muaj nws ib qho AOP module rau cov kev siv ntawm cov kev pab cuam uas muaj programming. Ib tug yuav txhais cov ntsiab lus thiab kev cuam tshuam kev cuam tshuam rau decouple thiab cais.
  • Lub module module meant rau kev koom tes nrog Aspect. AspectJ yog ib tug haib AOP framework.
  • Lub tswv yim module yog meant muab txhawb rau hoob kawm thiab hoob kawm loader cov lus qhia uas yuav tsum tau nyob rau hauv tej daim ntawv thov kev pab servers.
  • Lub Messaging module muaj kev txhawb rau STOMP. Nws kuj txhawb tau kev pab txhawb programming qauv rau cov routing thiab txheej txheem ntawm STOMP lus.
  • Qhov kev kuaj ntawd yog kuaj seb puas muaj lub caij nplooj ntoos hlav Junit thiab kev kuaj ntxhw.









Lub caij nplooj ntoos hlav MVC Nta

Muaj ob qho loj nta uas lom zem ntau qhia nrog lub caij nplooj ntoos hlav. Yog ib tus dependency Injection flavour ntawm Inversion of Tswjhwm thiab yog tus lwm tus Npaj Kev Pab Cuam feeb.

Nrog lub Dependency Injection feature, Ib tug yuav tsim nyog cov hoob kawm uas yog ywj siab ntawm lwm hoob kawm. Thaum sau ntawv thov Hauv Java, Nws yog ib tug yuav tsum muaj hoob uas yog tus neeg sab nraud kom tau. Qhov kev kuaj no ywj siab hais txog qhov kev kuaj ntawd thiab cov reuse ntawm hoob kawm thaum kuaj chav tsev kawm ntawv theem nrab. DIA pab kom cov hoob kawm glued ua ke nyob rau hauv ib txoj kev tab sis kuj ywj siab ntawm sib.

Ib qho tseem ceeb heev uas lub caij nplooj ntoos hlav tseem ceeb heev rau lub caij nplooj ntoos hlav (Aspected Oriented Programming framework). Nyob rau hauv daim ntawv thov, Muaj ntau yam kev ua hauj lwm uas nrhiav tau ntau yam ntsiab lus ntawm ib daim ntawv thov. Lawv paub li hla-tej kev txhawj xeeb. Cov no yog cais los ntawm daim ntawv thov cov lag luam logic thiab tej yam piv txwv yog logging, ruaj, ywj pheej tsis mloog, yam. Nam yog qhov tseem ceeb ntawm modularity nyob AOP. Ib tsuas pab hauv decoupling cov cross-tej kev txhawj xeeb txog los ntawm cov khoom cuam tshuam dab tsi.

Ntsig, Lub caij nplooj ntoos hlav tshwm sim rau ib zam modular zam. Txawm muaj ntau hoob kawm thiab tej pob khoom, Ib tug yuav khaws cov ones uas tsuas yuav tsum tau kom lawv ua hauj lwm.


Teeb ib puag ncig

Teeb lub caij nplooj ntoos hlav chaw yuav cia li plaub kauj ruam loj.

  • Teem java kev loj hlob Java txoj kev loj hlob

Ib tug yuav tsum download JDK Ntawm qhov chaw Oracle thiab ces, nruab nrab thiab configure lawv. Ces cov PATH thiab JAVA_HOME chaw yuav tsum muab teev tseg.

  • Installing ntawm Apache Common Logging API

Tus Apache Commons Logging API yuav tau downloaded ntawm qhov txuas http://commons.apache.org/proper/commons-logging/download_logging.cgi.

Tom qab downloading, Nws yog ib qho tseem ceeb heev uas yuav tsum unpack lub binary tis rau ib qhov chaw zoo kawg li. Tseem, nco ntsoov tias koj teem caij rau CLASSPATH.

  • Teev ntawm Eclipse tswv yim

Eclipse yuav tsum downloaded ntawm nom website. Ib zaug downloaded, tsis them cov binaries thiab ces muab lub PATH thiab.

  • Teem caij nplooj ntoos hlav lub caij nplooj ntoos hlav

Lub caij nplooj ntoos hlav lub caij nplooj ntoos hlav (Spring libraries). http://repo.spring.io/release/org/springframework/spring/. Dua, tseem ceeb heev uas yuav tau teem caij rau CLASSPATH kom yog.

Thaum koj tau tas cov kauj ruam plaub, koj yeej zoo.








Wb ua daim ntawv thov kev pab

Tam sim no cia peb ua ib co coding piv txwv li cas sib txawv ntawm lub caij nplooj ntoos hlav MVC. Nyob rau hauv daim ntawv thov no peb yuav muaj cov lus hauv qab no.

Chav Kawm Txuj: Qhov no yog tus tswj chav kawm ntawv uas lub caij nplooj ntoos hlav MVC. Nws tswj tag nrho cov ntaub ntawv thov kev pab cuam.

Qhia 1: Chav Kawm Txuj

pob.dashboardapp.controller;

/**

*

* cov npawg Kaushik @author

*/

ntshuam java.util.List;

import.springframework.taum... annotation.annotation.Autowired;

import.springframework.stereotype.Stereotype.Controller;

ntshuam org.springframework.web.bind.annotation.RequestMapping;

import.springframework.web servlet.ModelAndView;

import.com dashboardap.domain.KoiVoice;

import.com dashboardap.services.DashBoardService;

import.com.google.gson.Gson;

import.com.google.gson.JsonArray;

import.com.google.gson.JsonElement;

import.com.google.gson.reflect.TypeToken;

@Controller

Pej xeem hoob Kawm DashBoardCagetroller {

@Autowired

DashBoardService dashboardservice;

@RequestMapping(“/nkawv”)

Pej xeem ModelAndView tauKoViolist() {

Sau<KoiVoice> koivualeList1 = dashboardservice.getKoViolist();

JsonArray koivualeList = null;

//Qhov no yog rau JSON conversion

sim{

System.out.println(“Hauv JSON *”);

Gson gons = Gson tshiab();

Jsonelement caij = gson.toJsonTree(koivalueLiSt1, TypeToken tshiab<Sau<KoiVoice>>() {}.tsis muaj zog());

koivualeLi = caij.getAssonArray();

System.out.println(“Json array :”+ koivalulist);

System.out.println(“Kawg JSON *”);

}

ntes(Kos e)

{

System.out.println(“tshwj *************** :”+e);

}

Rov qab mus tshiab ModelAndView(“koivalulist”, “koivalulist”, koivalulist);

}

}

Cov Kev Pab Rau Cov Neeg Tau Txais Kev Pab: Hoob kawm no yog lub luag hauj lwm kom tau cov ntaub ntawv ntawm tus DAO txheej txheem rau ntau yam kev pab. Ntawm no peb yog retrieving tej qhov tseem ceeb xwb.

Qhia 2: Kev pab qhia ntawv rau cov neeg tau txais kev pab

pob khoom.com dashboardap.services;

/**

*

* cov npawg Kaushik @author

*/

ntshuam java.util.List;

import.springframework.taum... annotation.annotation.Autowired;

import.com dashboardap.dao.KoiVoiceDao;

import.com dashboardap.domain.KoiVoice;

Pej xeem hoob Kawm DashBoardService Implements DashBoardService {

@Autowired

KoiVoice Koiviceo koiveda;

@Override

Daim Ntawv Teev Npe<KoiVoice> Yoov Tshaj Cum() {

rov qab koivoica.getKoVialueList();

}

}

Domain class: Qhov no yeej classes muaj tau txais thiab setter methods rau ntau yam khoom.



Qhia 3: Domain class

pob.dashboardap.dashboardap.domain;

/**

*

* cov npawg Kaushik @author

*/

Pej xeem hoob kawm KoiVoice {

qhov chaw ntiav pub rau luag;

qeb kauj ruam;

qhov chaw ntiav pub ntiav;

ntiav kqawm kqhiab;

Pej xeem cov kauj ruam() {

kev pab rov qab;

}

pej xeem tsis txhob setService(Hlua) {

qhov kev pab no...;

}

Pej xeem string zaj dabneeg() {

qeb;

}

pej xeem tsis txhob setCategory(qeb kauj ruam) {

Qhov no.., qeb keeb kwm =;

}

Pej xeem txoj hlua rau pej xeem() {

thaj av ntawd;

}

pej xeem tsis txhob setregion(thaj av ntawd) {

Thaj av ntawd = thaj av ntawd =;

}

Pej xeem stringing tauKqivalue() {

knivalue;

}

Pej xeem tsis txhob setKqivalue(Txoj hlua kqaws) {

no.kqivalue = kqivalue;

}

}

Hoob Kawm: Qhov no yog cov ntaub ntawv txheej txheem mus cuag cov ntaub ntawv puag. Ntawm no peb tau siv tej ntaub ntawv predefined kom cov qauv yooj yim to taub yooj yim.

Qhia 4: O DAO chav kawm ntawv

pob.dashboardap.dao;

/**

*

* cov npawg Kaushik @author

*/

import java.phau ntawv.DateFormat;

ntshuam java.text.SimpleDateFormat;

ntshuam java.util.ArrayList;

ntshuam java.util.List;

ntshuam javax.sql.DataSource;

import.springframework.taum... annotation.annotation.Autowired;

ntshuam org.springframework.jdbc.core.JdbcTemplate;

import.com dashboardap.domain.KoiVoice;

import.com dashboard.jdbc.DBRowMapper;

import java.sql.kev twb kev txuas;

Chaw nres nkoj java.sql.sql.driverManager;

ntshuam java.sql.ResultSet;

ntshuam java.sql.SQLException;

chaw nres nkoj java.sql.statement;

import java.sql.timestamp;

chaw nres nkoj java..zog;

Pej xeem hoob KoiVoiceDaoImpl siv KoiVoiceDa {

@Autowired

// DataSource dataSource;

Daim Ntawv Teev Npe<KoiVoice> Dhau CaiJ Nyoog() {

Teev koivualueList = Tshiab ArrayList();

KoiVoice koivice = tshiab KoiVoice();

koivice.setCategory(“Zuag qhia tag nrho”);

koivice.setKqivalue(“69”);

koivice...(“Tag nrho”);

koivice.setService(“Txawb lub suab txawb”);

koivualeList.ntxiv(pob khaus);

rov qab mus koivualeList;

}

}



Lub caij nplooj ntoos hlav configuration: Qhov no yog lub caij nplooj ntoos hlav configuration ua ntaub ntawv sib txawv ntawm daim ntawv thov thiab lawv mapping.

Qhia 5: Caij nplooj ntoos hlav-servlet.xml

<?xml version =”1.0″ encoding =”UTF-8″?>

<taum xmlns =”http://www.springframework.org/schema/beans”

xmlns:xsi =”http://www.w3.org/2001/XMLSchema-instance” xmlns:tshwjxeeb”http://www.springframework.org/schema/p”

xmlns:ntsiab lus teb=”http://www.springframework.org/schema/context”

xmlns:mvc=”http://www.springframework.org/schema/mvc”

xsi:schemaLocation =”http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-3.0.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd”>

<!– Qhia cov khoom uas yuav saib xyuas cov khoom annotations –>

<ntsiab lus teb:kev sib txuas lus /config />

<!– declaring pob khoom –>

<muv:kev txhaum-uas tau tsav tsheb/>

<ntsiab lus teb:pheej ywj pheej-scan base-pob=”com.dashboardapp,dashboard,com.dashboardapp.controller” />

<!– Ntxiv saib resolver los qhia jsp lub rau browser –>

<taum daim id =”viewResolver”

hoob =”org.springframework.web servlet.view.InternalRescewewolver”>

<lub npe ntawm tus kheej =”viewClass” tus nqi =”org.springframework.web servlet.view.JstlView” />

<lub npe ntawm tus kheej =”ua ntej” tus nqi =”/WEB-INF/jsp/jsp/” />

<lub npe ntawm tus kheej =”suffix” tus nqi =”.jsp” />

</taum>

<!– taum – Ntau taum yuav muab ntxiv ntawm no –>

<taum daim id =”koiOVice” hoob =”com.dashboardap.dao.KoiVoiceDaImpl” />

<taum daim id =”tsheb dashboards” hoob =”com.dashboardap.services.DashBoardServiceImpl” />

<!– tshaj tawm datasource taum – Qhov no yog qauv siv mysql database –>

</taum>

Spring configuration file

Duab 1: Lub caij nplooj ntoos hlav configuration

Web configuration xml: Qhov no yog lub web configuration ntaub ntawv.

Qhia 6: web.x xml ntawv

<?xml version =”1.0″ encoding =”UTF-8″?>

<web-app app xmlns:xsi =”http://www.w3.org/2001/XMLSchema-instance”

xmlns =”http://java.Sun.com/xml/Ns/javaee” xmlns:web site.”http://java.Sun.com/xml/Ns/javaee/Web-app_2_5.xsd”

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″>

<zaub>DashBoardDemo</zaub>

<txais tos-teev>

<txais tos-ntaub ntawv>Index.jsp</txais tos-ntaub ntawv>

</txais tos-teev>

<pw tsaug zog>

<tis npe>caij nplooj ntoos hlav</tis npe>

<chav kawm ntawv>org.springframework.web servlet.Dispatcherverlet</chav kawm ntawv>

<load-on-startup>1</load-on-startup>

</pw tsaug zog>

<qhwv-mapping>

<tis npe>caij nplooj ntoos hlav</tis npe>

<tus qauv>/</tus qauv>

</qhwv-mapping>

<qhwv-mapping>

<tis npe>vim</tis npe>

<tus qauv>*.ntoo khaub lig</tus qauv>

</qhwv-mapping>

<qhwv-mapping>

<tis npe>vim</tis npe>

<tus qauv>*.xib teg</tus qauv>

</qhwv-mapping>

<qhwv-mapping>

<tis npe>vim</tis npe>

<tus qauv>*.js</tus qauv>

</qhwv-mapping>

</Web-app>

Web.xml file

Duab 2: Web.x xml ntaub ntawv

Tam sim no, khiav daim ntawv thov thiab koj yuav tau txais cov qoob loo li nram qab no rau cov console.

Output

Duab 3: Uas qhia tso zis rau cov console

Xaus:

Lub caij nplooj ntoos hlav MVC yog ib tug haib framework uas yuav siv tau rau kev tsim cov ntaub ntawv los ntawm cov qauv-saib qauv. Txawm hais tias muaj ntau lwm MVC frameworks muaj nyob rau hauv lub lag luam, Tiam sis caij nplooj ntoos hlav MVC yog cov nyiam tuaj ib thiab lug siv. No tutorial muab ib lub tswv yim ncaj ncees txog lub framework thiab nws cov chaws siv. Vam tias nws yuav pab developers nres expertise thiab ua hauj lwm confidently nrog caij nplooj ntoos hlav MVC.







============================================= ============================================== Yuav zoo TechAlpine phau ntawv rau Amazon
============================================== ---------------------------------------------------------------- electrician ct chestnutelectric
error

Txaus siab rau qhov blog? Tshaj tawm lus thov :)

Follow by Email
LinkedIn
LinkedIn
Share