Ada banyak artikel tentang penggunaan konfigurasi SpringMVC, tetapi tidak banyak yang dijelaskan dengan jelas. Di sini kami terutama memperkenalkan penggunaan item konfigurasi yang umum digunakan dan kelas parsingnya. Ada dua cara untuk memproses konten di SpringMVC, satu adalah konverter, dan yang lainnya adalah ViewResolver. Keduanya dapat menangani format konten JSON, XML dan membentuk.
<? Xml Version = "1.0" encoding = "UTF-8" mandiri = "no"?> <beans xmlns = "http://www.springframework.org/schema.beans" xmlns: konteks = "http:/wwwwram.spramework xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: mvc = "http://www.springframework.org/schema/mvc" xmlns: p = "http:/schema.mvc" xmlns: p = "http:/schema.mvc. xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: util = "http://www.spramework.org/schema/util" xmlns: c = "http:org./schema" xmlns: c = "http:org.saMA.SAMA. XSI: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.orger/schema/context http://www.spramework.org/schema/context http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/www.springframework.org/schema http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/aop http:/www.spramewework.org/schema/schema/aop Pengontrol, konfigurasi perlu dimuat, karena umumnya konfigurasi ini dimuat oleh DispatchServer dan tidak dalam konteks yang sama dengan kelas mendengarkan pegas. If you want to know the reason, please see http://blog.csdn.net/strivezxq/article/details/43795081 This article analyzes the spring initialization process in detail-> <context:property-placeholder location="classpath:app.properties" /> <!--Scans the classpath for annotated components @Component, @Repository, @Service, dan @controller menggunakan-default-Filters = "false", Anda dapat mengatur komentar mana yang hanya dipindai. Generally, springMVC configuration only loads the following two comments-> <context:component-scan base-package="your.base.package" use-default-filters="false"> <context:include-filter type="annotation" expression="org.springframework.steretype.Controller"/> <context:include-filter type="annotation" Ekspresi = "org.springframework.web.bind.annotation.controllerAdvice"/> </konteks: komponen-scan> <!-<konteks: komponen-scan annotation-config = "true"> Ini sudah berisi fungsi konteks: annotation-configr, sehingga pada dasarnya tidak perlu konfigurasi, konfigurasi @lipatan: pada dasarnya tidak perlu konfigurasi, pada pada pada dasarnya konfigurasi, pada dasarnya tidak perlu konfigurasi, pada dasarnya tidak perlu konfigurasi, pada dasarnya tidak perlu konfigurasi, pada dasarnya tidak perlu konfigurasi, pada dasarnya tidak perlu konfigurasi, pada dasarnya tidak perlu konfigurasi, pada dasarnya tidak perlu konfigurasi ini, pada dasarnya tidak perlu konfigurasi ini, pada dasarnya tidak perlu konfigurasi, pada dasarnya tidak perlu konfigurasi ini, pada dasarnya tidak perlu konfigurasi, pada dasarnya tidak perlu konfigurasi ini, pada dasarnya tidak perlu konfigurasi ini, pada dasarnya tidak perlu @Autowired, serta JSR 250's @PostConstruct, @predestroy dan @resource (jika tersedia), JAX-WS @WebServiceref (jika tersedia), @persistenceun @persence-conf! org.springframework.web.servlet.resource.defaultserVletHttpRequestHandler dalam konteks MVC musim semi. Ini akan menyaring URL yang memasuki DispatcherServlet seperti inspektur. Jika ditemukan bahwa itu adalah sumber daya statis, permintaan akan ditransfer ke servlet default dari server aplikasi web. Jika ini bukan permintaan sumber daya statis, DispatcherServlet akan terus memproses. Nama servlet default dari server aplikasi web adalah "default", sehingga defaultServerHttpRequestHandler dapat menemukannya. Jika nama servlet default dari semua server aplikasi web Anda tidak "default", Anda perlu menampilkan yang ditentukan melalui atribut default-servlet-name: <MVC: Default-Servlet-Handler-Servlet-Name = "Nama Servlet Default. <servlet-name> default </servlet-name> 3. <RURL-pola>*. <servlet-name>default</servlet-name> 11. <url-pattern>*.css</url-pattern> 12. </servlet-mapping> If springdefault-servlet-name is not configured, the default setting will be supported, and the commonly used web servers are already supported--> <mvc:default-servlet-handler /> <!-- Allow static resources to be placed anywhere and handle the class org.springframework.web.servlet.resource.resourcehttprequestHandler <bean id = "ResourceHttPRequestHandler"> <nama properti = "lokasi" value = "classpath:/meta-inf/sumber daya/"> </properti> </bean> <bean> <class name = "meta-inf/sumber key = "/sumber daya/**"> ResourceHttPRequestHandler </prop> </props> </prup Property> </bean> Implementasi tag berikut-> <mvc: pemetaan sumber daya = "/sumber daya/**" lokasi = "/sumber daya/"> </mvc: Sumber Daya> <!-Daftar "Global" Global "Pencegatan Konseptor untuk Mendaftar ke Allsinginginges. Setiap inteceptor harus mengimplementasikan org.springframework.web.servlet.handlerinteptor atau org.springframework.web.context.Request.WebRequestInterceptor Interface-> <Mvc: Interceptors> <Mvc: Interceptor> <mvc: pemetaan path = "/**" " /> <MVC: Path-Mapping Path = "/JS/**"/> <MVC: Path-Mapping Path = "/Gambar/**"/> <bean/> </mvc: Interceptor> </mvc yang digunakan untuk Metode Penggunaan yang Penggunaan AGRIUBS AGRIUBS AGRIUBS? org.springframework.web.servlet.config.AnnotationDrivenBeandefinitionParser Konten-negosiasi-negosiasi-anager dapat mengatur parameter jenis konten dalam url, dan jenis konten default dapat diatur <bean id = "contentNeGotiationManagerBean" p: fourpathextension = "format" foucy "parampareer" parampare "parampare" parampareer "parampareer" parampareer "paramet" parampareer " P: IgnoreacCepTheader = "true" p: defaultContentType = "application/json"> <name properti = "mediatypes"> <props> <prop key = "json"> Application/JSON </prop> <prop KEY = "XML"> APLIKASI/XML </prop> </props> </props: Props: MNOVIVEN "> </xml </prop> </props> </props> </props: mvl: ml </xml </prop> </props> </props> props> </xml"> content-negotiation-anager="contentNegotiationManagerFactoryBean"> <mvc:message-converters> <ref bean="stringHttpMessageConverter" /> <ref bean="jsonHttpMessageConverter" /> <ref bean="marshallingHttpMessageConverter" /> </mvc:message-converters> </mvc:annotation-driven> <!-- Content Management Factory --> <bean p:favorPathExtension="false" p:favorParameter="true" p:parameterName="format" p:ignoreAcceptHeader="true" p:defaultContentType="application/json"> <property name="mediaTypes"> <props> <prop KEY = "JSON"> APLIKASI/JSON </prop> <prop key = "xml"> Aplikasi/xml </prop> </props> </propt> </bean> <!- Parser konten, Anda dapat mengonfigurasi tipe parameter pengembalian dengan p: parameterName = "format" dan mengkonfigurasi default yang diminta tipe konten yang diminta melalui p: default p: parametername = "format" dan mengkonfigurasi default yang diminta tipe konten yang diminta melalui p: defaultcon. C: QualityValue = "0,5" dapat mengatur prioritas jenis konten. If mvc:annotation-driven and annotation method (@RequestBody), the following configuration is not effective --> <bean> <property name="contentNegotiationManager" ref= "contentNegotiationManagerFactoryBean"> </property> <property name="defaultViews"> <list> <bean > <property name="modelKey" value="resultVo" /> <property name = "ExtractValueFromsingLeyModel" value = "true"/> </ bean> <bean> <constructor-Arg ref = "jaxb2marshaller"/> <name properti = "contentType" value = "application/xml"/> </bean> </list> </list> </properti> <!-<! "Name =" </bean> <!-- XML view using a JAXB marshaller --> <bean id="jaxb2Marshaller"> <property name="marshallerProperties"> <map> <entry key="jaxb.formatted.output"> <value type="boolean">true</value> </entry> <entry key="jaxb.encoding" value="UTF-8" /> </pap> </property> <name properti = "packagestoscan"> <cist> <value> com.api.domain </ value> <value> com.api.web.controller.vo </value> </cist> </prect> </bean> <Bean = "JStLviewResolver"> </Property = "name =" 2 name = "JSTLVIEWRERVER"> </bean = "2 name =" 2 name = "JSTLVIEWREVER"> </bean = "" JSTLVIEWRACET "> value = "org.springframework.web.servlet.view.jstlview" /> <name properti = "prefix" value = " /views /" /> <properti name = "suffix" value = "" /> <name properti = "contextAttribute" value = "rc" /< /bean> <! Standarnya adalah 1.0. Semakin tinggi prioritas, semakin tinggi prioritas-> <bean id = "stringHttpMessageConverter"> <name properti = "SupportedMediatypes"> <list> <value> Teks/polos; charset = utf-8 </ value> <value> Teks/html; charset = utf-8 </value> </list> Teks/html; charset = UTF-8 </value> </list> TEXT/HTML; charset = UTF-8 </value> </list> id = "jsonhttpmessageConverter" /> <bean id = "marshallingHttpmessageConverter"> <konstruktor-arg ref = "jaxb2marshaller" /> <!-<name property = "dukung" value = "application /xml"> < /property name = "name" value "value =" application /xml "> < /property> property>" name "value" application = "Application /xml"> < /property> property> C: type = "Application" C: SubType = "XML" C: QualityValue = "0.5"/> </util: list> </prop Property> </bean>
SpringMVC Mengembalikan langkah konfigurasi JSON sebagai berikut:
1. Tambahkan paket jackson.jar
2. Tambahkan kode berikut ke file konfigurasi ApplicationContext.xml
<!-Passing Returns Json-> <!-<ean>-> <bean> <name properti = "messageConverters"> <cist> <Ref bean = "MappingjacksonHttpMessageConverter"/> </list> </bean "<bean Id =" MappingJacksonHtpmessagesagec <value> Teks/html; charset = utf-8 </value> </list> </property> </tean>
3. Tambahkan kode berikut ke pengontrol
@RequestMapping (value = "/cina/listtree", Method = requestMethod.post) @ResponseBody Daftar publik getListChinese (model model) {daftar <user> list = (daftar <CHINESECATGORY>) COMMONMGR.FIND ("from user"); daftar pengembalian; }Nilai pengembalian dapat berupa daftar atau jenis peta
Meringkaskan
Di atas adalah semua konten dari artikel ini tentang konfigurasi dan kelas analisis yang umum digunakan pada musim semi. Saya harap ini akan membantu semua orang. Teman yang tertarik dapat terus merujuk ke situs ini:
Penjelasan terperinci tentang kode untuk menyuntikkan nilai atribut menggunakan file konfigurasi dan @Value di Spring
Analisis masalah pemindaian beberapa paket dalam konfigurasi musim semi
Penjelasan terperinci tentang siklus hidup penggunaan konfigurasi pegas
Jika ada kekurangan, silakan tinggalkan pesan untuk menunjukkannya. Terima kasih teman atas dukungan Anda untuk situs ini!