هناك العديد من المقالات حول استخدام تكوين springMVC ، ولكن لم يتم وصف العديد منها بوضوح. هنا نقدم بشكل أساسي استخدام عناصر التكوين الشائعة الاستخدام وفئات التحليل. هناك طريقتان لمعالجة المحتوى في SpringMVC ، أحدهما محول ، والآخر هو ViewResolver. يمكن كلاهما التعامل مع تنسيقات محتوى JSON و XML وتشكيل.
<؟ xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" XSI: Schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/context http://www.springframework.org/schema/sxtxt-spring-3.3 http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.3 http://www.springframework.org/schema/util/spring-util.xsd المستخدمة في وحدة التحكم ، يجب تحميل التكوين ، لأنه يتم تحميل هذا التكوين بشكل عام بواسطة DispatchServlet وليس في نفس سياق فئة الاستماع الربيع. إذا كنت تريد أن تعرف السبب ، فيرجى الاطلاع على http://blog.csdn.net/strivezxq/article/details/43795081 تحلل هذه المقالة عملية تهيئة الربيع بالتفصيل-> السياق: property-placeholder = "classpath: app.properties"/>!- و controller use-default-filters = "false" ، يمكنك تعيين التعليقات التي يتم مسحها ضوئيًا فقط. بشكل عام ، يقوم تكوين springmvc فقط بتحميل التعليقتين التاليتين-> <السياق: مكون-المسح الضوئي package = "your.base.package" use-default-filters = "false"> <context: include-filter type = "annotation" expression = "org.springframework.steretype.Controller"/> expression = "org.springframework.web.bind.annotation.controllerAdvice"/> </سياق: مكون مفصق> <!-<سياق: مكون من الفسيلة الفضل ، فصحيف أن يتكيف هذا التهيئة ، وتنشيط الملاذ: قم بتنشيطها في فئة الاختلاف المتكاملة ، قم بتنشيطها. required و @autowired ، بالإضافة إلى JSR 250 من postconstruct و predestroy و @Resource (إن كان متاحًا) ، و jax-wswebserviceref (إذا كان ذلك متاحًا) ، ejb3's ejb (إذا كان ذلك متاحًا) ، و jpa'spersistencontext و @persistence (إذا كان ذلك متاحًا) <!-سيحدد org.springframework.web.servlet.resource.defaultservlethttprequesthandler في سياق الربيع MVC. وسوف يقوم بفحص عنوان URL الذي يدخل إلى مرسلي مثل المفتش. إذا تبين أنه مورد ثابت ، فسيتم نقل الطلب إلى servlet الافتراضي لخادم تطبيق الويب. إذا لم يكن طلبًا ثابتًا للموارد ، فسيستمر Dispatcherservlet في المعالجة. اسم servlet الافتراضي لخادم تطبيق الويب هو "افتراضي" ، لذلك يمكن لـ DefaultServleThtTprequestHandler العثور عليه. إذا لم يكن اسم Servlet الافتراضي لجميع خوادم تطبيق الويب الخاصة بك "افتراضيًا" ، فأنت بحاجة إلى عرض المحدد عبر سمة الاسم الافتراضية: <MVC: Default-Servlet-Servault-Servlet-Name-name = "اسم servlet الافتراضي المستخدم من قبل خادم الويب" /> tomcat ، Jetty ، Jboss ، و Glassfault Default Is Is Eg: <Servlet-Name> الافتراضي </servlet-name> 3. <url-pattern>*. <Servlet-Name> افتراضي </servlet-name> 11. <url-pattern>*. org.springframework.web.servlet.resource.resourcehttprequesthandler <bean id = "resourceHttPrequestHandler"> <sperty name = "soves" value = "classpath:/meta-inf/" key = "/resources/**"> ResourceHttPrequestHandler </prop> </props> </property> </bean> تطبيق العلامة التالي-> <mvc: الموارد mapping = "/الموارد/**" الموقع = "/الموارد/" </mvc: الموارد> <! يجب أن ينفذ كل مستقبلات org.springframework.web.servlet.handlerNerInterceptor أو org.springframework.web.context.request.webrequestinterceptor واجهة-> <mvc: interceptors> path = "/css/**"/> <mvc: استبعاد path mapping = "/js/**"/> <mvc: استبعاد path mapping = "/images/**"/> <bean/> </mvc: interceptor> </mv: interceptors> <! controllers تكوين التكوين فئة التحليل: org.springframework.web.servlet.config.annotationDrivenBeanDefinitionparser يمكن تعيين محتوى contentiation-anager-anager-anager في عنوان url ، ويمكن تعيين نوع المحتوى الافتراضي <bean id = P: phasparameter = "true" p: parameTername = "Format" p: agnoreacceptheader = "true" p: defaultContentType = "Application/JSON </bean>-> <mvc: توضيح المحتوى الذي يحركه المحتوى-anager = "contentNegotiationManageRfactoryBean"> <mvc: message-converters> <ref bean = "stringhttpmessageconverter" /> <ref bean = "jsonhtpmessageConverter" /> </mvc: message-converters> </mvc: تعويذة التعليقات التوضيحية> <!-مصنع إدارة المحتوى-> <bean p: apportPathextension = "false" p: uveldparameter = "true" p: parameTername = "Format" p: agnoreAcbeDer = "true" p: defaulttype = " key = "json"> application/json </prop> <prop key = "xml"> application/xml </props> </props> </property> </bean> <!- محتوى المحتوى ، يمكنك تكوين نوع معلمة الإرجاع بواسطة p: parameTername = "format" وتكوين نوع المحتوى الافتراضي المطلوب من خلال p: defaulttype. C: QualityValue = "0.5" يمكن أن يضبط أولوية نوع المحتوى. إذا كان MVC: طريقة التعليق التوضيحي والشرح (@requestbody) ، فإن التكوين التالي غير فعال-> <bean> <property name = "contentNegotiationManager" ref = "contentNegotiationManageRaGERFANCEBEAN"> < /propert name = "extractValueFromSingleKeymodel" value = "true"/> </bean> <bean> <bustructor-arg ref = "jaxb2marshaller"/> <property name = "contenttype" value = "application/xml"/> </bean> </list> </property> عرض XML باستخدام jaxb marshaller-> <bean id = "jaxb2marshaller"> <property name = "MarshallerProperties"> <map> <intrade key = "jaxb.formatted.output name = "packageStoscan"> <list> <value> com.api.domain </value> <value> com.api.web.controller.vo </value> </list> </sopperation> </bean> <bean id = "jStlViewResolver"> <property name = "2"/> value = "org.springframework.web.servlet.view.jstlview" /> <property name = "prefix" value = " /views /" /> <property name = "falue" value = "" /> <property name = "requestContextTive" الافتراضي هو 1.0. كلما زادت الأولوية ، كلما زادت الأولوية-> <bean id = "stringhttpmessageConverter"> <property name = "supportedMediatePes"> <list> <value> text/plain ؛ charset = utf-8 </value> text/html ؛ charset = utf-8 </value> </propert id = "jsonhttpmessageConverter" /> <bean id = "marshallinghttpmessageconverter"> <constructor-arg ref = "jaxb2marshaller" /> <! C: type = "application" c: subtype = "xml" c: QualityValue = "0.5"/> </util: list> </propert
يقوم SpringMVC بإرجاع خطوات تكوين JSON على النحو التالي:
1. أضف حزمة jackson.jar
2. أضف الكود التالي إلى ملف تكوين ApplicationContext.xml
<!-مرور الإرجاع json-> <!-<bean>-> <bean> <property name = "messageConverters"> <list> <ref bean = "mappingjacksonhttpmessageConverter"/> </list> </spertar <value> text/html ؛ charset = utf-8 </value> </list> </property> </bean>
3. أضف الكود التالي إلى وحدة التحكم
requestmapping (value = "/inchoate/listtree" ، method = requestMethod.post) responsebody list getListchinese (model model) {list <Sether> list = (list <ChinesEcateS>) commonMgr.find ("من المستخدم") ؛ قائمة العودة }يمكن أن تكون قيمة الإرجاع قائمة أو نوع الخريطة
لخص
ما ورد أعلاه هو كل محتوى هذه المقالة حول التكوينات الشائعة الاستخدام وفئات التحليل في الربيع. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى هذا الموقع:
شرح مفصل للرمز لحقن قيمة السمة باستخدام ملفات التكوين و @value في الربيع
تحليل مشكلة مسح حزم متعددة في تكوين الربيع
شرح مفصل لدورة حياة استخدام تكوين الربيع
إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!