Основные части
1. Введение в FastJson
Fastjson - это библиотека Java, которую можно использовать для преобразования объектов Java в представления JSON. Его также можно использовать для преобразования строки JSON в эквивалентный объект Java. Это должна быть самая быстрая скорость преобразования и почти стала стандартной конфигурацией проектов (обычно используется FastJson вместо Джексона, когда AJAX -запрос и разработка интерфейса).
Github: https://github.com/alibaba/fastjson (локальная загрузка)
Характеристика:
Основные особенности:
2. Fastjson API
Запись Fastjson API - com.alibaba.fastjson.json. Общие операции сериализации могут быть непосредственно завершены статическими методами на классе JSON.
// parse json текст как jsonobject или jsonarray public static final parse parse (String Text); // parse json текст в jsonobject public static final jsonObject parseObject (String Text); // parse json text как javabean public static final <t> t parseobject (String Text, Class <t> clazz); // parse json текст в jsonarray public static final jsonarray parsearray (String Text); // Проанализируйте текст JSON в коллекцию Javabean Public Static Final <T> List <t> Pacersearray (String Text, Class <t> clazz); // сериализовать javabean в json текст публичной статической конечной строки tojsonstring (объект объекта); // сериализовать Javabean в форматированное JSonstring (объект объекта, Boolean PrettyFormat); // преобразовать Javabean в jsonObject или jsonarrayPublic Static Final Object Tojson (Object JavaObject);
Jsonarray: эквивалент списку <object>
JsonObject: эквивалент карте <строка, объект>
SerializeConfig: это специальная конфигурация для некоторых процессов сериализации в процессе сериализации, таких как форматирование некоторых полей (дата, перечисление и т. Д.)
Serializewriter: эквивалент Stringbuffer
Свойство Serializerfeature:
Практическая часть
1. Введите Spring MVC и FastJson -зависимости в pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <dolidyversion> 4.0.0 </modelversion> <groupid> com.mengdee </GroupId> <stritfactid> платформ-springmvc-webapp </artifactid> <cadegaging> War </packaging> <версия> 0.0.1-snsn </artifactid> <cadegaging> waregaging> <версия> 0.0.1-sn </artifactid> <cadegaging> waregaging> 0.0.1-sn-webapp. <mame> platform-springmvc-webapp maven webapp </name> <url> http://maven.apache.org </url> <properties> <prop.build.sourceencoding> utf-8 </project.build.sourceencoding> <junit.version> 3.8.1 <log4j.version> 2.5 </log4j.version> <jstl.version> 1.2 </jstl.version> <spring.version> 4.2.3.release </spring.version> <fastjson.version> 1.2.32 </affeerjson.version> </properties> <dependencies> <dery> <group> junit </junit. <ArtifactId> junit </artifactid> <sersive> 3.8.1 </version> <scope> test </scope> </depervice> <depervice> <groupid> javax.servlet </GroupId> <ratifactid> jstl </artifactid> <sersive> $ {jstl.version} </версия> </artifactid> <версия> {jstl.version} </ression> </artifactid> <sersive> <groupId> org.springframework </GroupId> <ArtifactId> Spring-webmvc </artifactid> <sersiod> $ {spring.version} </version> </redice> <dehyederian> <groupid> org.springframe </GroupD> <ratifactid> </artifactid> <serserame> $ {sprner aression> </artifactid> <srerse> $ {Sprner arestior> </artifactid> <serse. <dependency> <groupid> org.springframework </groupid> <artifactid> spring-context </artifactid> <sersive> $ {spring.version} </version> </dependency> <dependency> <groupid> org.springframework </GroupD> <ratifactid> Spring-context-support </artifactid> <sersion> $ {spring.version} </version> </depertive> <Dependency> <groupId> org.springframework </GroupId> <strifactid> spring-jdbc </artifactid> <sersion> $ {spring.version} </version> </repertific> artifact> artifact> </artifact> </artifact> </artifact> </artejid> <groupd> <groupd> <groupd> <groupd> <group. <sersion> $ {fastjson.version} </version> </deperency> </deposities> <!-Использование Aliyun Mirror-> <Repositories> <prepository> <id> aliyun </id> <mame> aliyun </name> <url> http://maven.aliyun.com/nexus/content/group/puplic/puplic/puplic/puprics/goups/1goupm </Repository> </Repository> </Repository> </Repository> <buld> <finalName> платформу-springmvc-webapp </finalname> </build> </project>2. Настройте web.xml
<! Doctype Web-App Public "-// Sun Microsystems, Inc.//DTD Web Application 2.3 // en" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app <param-value> classpath: conf/spring/spring-*. xml </param-value> </context-param> <dellocker> <socription> Spring Suldier </description> <delloarer-class> org.springframework.web.context.contextloaderLister </allocer-class> </sluster> <servlet> <servlet-name> spring-mv-name> </sluster> <servlet> <servlet-name> spring-mv-name> </sluster> </servilt> <serlet> spring-mv-name. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <Servlet-Mapping> <Servlet Maping> <Servlet-name> Spring-MVC </servlet-name> <url-pattern>/</url-pattern> </servlet> <Filter> <Filter-name> ParmentEncodingFilter </filter-name> <filter-class> org.sprameworkwork.web.filter.CharcterNing-class> org.spramework. <Init-param> <param-name> кодирование </param-name> <param-value> utf-8 </param-value> </init-param> <init-param> <param-name> forceEncoding </param-name> <-param-value> true-name-name-name-name-name-name-name-name-name-name-name-name-name-name-name-name-name-name-name-name-name-name-name-name-name <Url-pattern>/*</url-pattern> </filter-mapping> <wevelcoble-file-list> <wevelciple-file>/index.jsp </werveding-file> </werveding-file-list> <ошибка-page> <cerry-code> 404 </error-code> <местоположение> /индекс.
3. Настройте Spring-servlet.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: p = "http://www.springframework.org/schema/p" xmlns: context = "http://www.springframework.org/schema/context" xmlns: mvc = "http://www.springframe.orgema.orns.orns: mvc =" xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.spramework.org/schema/mvcema http://www.springframework.org/schema/mvc/spring-mvc-4.2.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2..x.> base-package = "com.mengdee.manage.controller"/> <bean id = "viewresolver"> <name = "prefix" value = "/"> </property> <!-prefix of view file-> <name = "suffix" value = ". Jsp"> Property> <! Things-> <name = name = "viewClass" value = "org.springframework.web.servlet.view.jstlview"> </property> </bean> <!-Функция Annotation MVC Spring Spring, чтобы завершить картирование запросов и аннотации POJOS-> <MVC: Annotation-Driven> <MVC: Сообщения-conuters-defa- FastJson для замены оригинальной поддержки Jackson-> <Bean> <property name = "Поддержка MediceTypes"> <sist> <datter> text/html; warset = utf-8 </value> <datter> application/json </value> </list> </properation> <name = "features" <> <days> outtefieldname </value> <! <dulch> wriseemapnullvalue </value> <!-Будь то полевое поле с нулевым значением, по умолчанию к false-> <!-<dulch> disablecircularReferEdEctEct </value> <datude> writedateedateformat </value> <dulch> writenullingSempty </value>, если тип символа является nul Числовое поле является нулевым, вывод равен 0, а не null <значение> writenullbooleanasfalse </value> Boolean Field Null. </mvc: направление аннотаций> </beans>
4. Ява
Образование: образование (класс перечисления)
Пакет com.mengdee.manage.entity; import java.util.hashmap; импорт java.util.map;/** * Образование * @author Administrator * */public enum Education {Cindergarten («Детский сад», 1), начальная школа («начальная школа», 2), Junior_middle («Jun School», 3). Университет («Университет», 5), колледж («Колледж», 6); Частная статическая финальная карта <Integer, Education> Education_map = новый HashMap <Integer, Education> (); static {for (образование образования: образование. }} частная строка текст; частный индекс Int; частное образование (строка текста, int index) {this.text = text; this.index = index; } public String getText () {return Text; } public void setText (String Text) {this.Text = text; } public int getIndex () {return index; } public void setIndex (int index) {this.index = index; } public Static Education getEnum (Integer Index) {return Education_map.get (index); }}Человек:
пакет com.mengdee.manage.entity; import java.util.arraylist; import java.util.date; import java.util.list; import java.util.map; import com.alibaba.fastjson.annotation.jsonfield; Public Class Person {Private Long Id; Приватное название строки; частный байтовый пол; // Пол 1: мужчина 2: женский частный короткий возраст; // возраст частная длинная зарплата; // зарплата частный двойной вес; // Вес частного уровня чара; // Рейтинг частного логического взрослого; // будь то взрослый частное свидание по случаю дня рождения; // день рождения частное образование; // Образовательная квалификация частная строка [] Хобби; // Hobbies Private List <gog> Собаки; // Pet Dog Private Map <String, Object> Address; // адрес // Использовать аннотации для управления, хотите ли вы сериализовать @jsonfield (serialize = false) частный список <object> obj = new ArrayList <> (); public Person () {} public (Long Id, название строки, байтовый пол, короткий возраст, длинная зарплата, двойной вес, уровень Char, логический взрослый, дата рождения, строка [] хобби, список <gog> собаки, карта <строка, объект> адрес) {super (); this.id = id; this.name = name; this.gender = пол; this.age = возраст; это .salary = зарплата; this.weight = вес; this.level = level; this.adult = взрослый; this.birthday = день рождения; this.hobbies = хобби; this.dogs = собаки; this.address = адрес; } public long getId () {return id; } public void setId (long id) {this.id = id; } public String getName () {return name; } public void setName (string name) {this.name = name; } public byte getGender () {return Gender; } public void setGender (байтовый пол) {this.gender = gender; } public short getage () {return Age; } public void setage (короткий возраст) {this.age = age; } public long getAlary () {return Parlary; } public void setSalary (длинная зарплата) {this.salary = зарплата; } public Double GetWeight () {return Weight; } public void легкий вес (двойной вес) {this.weight = Weew; } public char getlevel () {return Level; } public void setlevel (char level) {this.level = level; } public boolean isadult () {return udult; } public void setAdult (логический взрослый) {this.adult = взрослый; } public date getBirthDay () {return Birthday; } public void setBirthDay (дата рождения) {this.BirthDay = день рождения; } // Обработка сериализованных типов перечисления, значение по умолчанию - это сериализованная строка значения перечисления, а не индекс привязки или текст enum @jsonfield (name = "edu") public int getedu () {return education.getindex (); } @Jsonfield (name = "edu") public void setedu (int index) {this.education = Education.getEnum (index); } @Jsonfield (serialize = false) государственное образование geteducation () {return Education; } @Jsonfield (serialize = false) public void seteducation (образование образования) {this.education = образование; } public String [] gethobbies () {return hobbies; } public void sethobbies (string [] hobbies) {this.hobbies = hobbies; } public list <gog> getDogs () {return Dogs; } public void setDogs (список <gog> dogs) {this.dogs = dogs; } public map <string, object> getAddress () {return Adder; } public void setAddress (map <string, object> address) {this.address = адрес; }}TestController
пакет com.mengdee.manage.controller; import java.text.decimalformat; импорт java.util.arraylist; import java.util.date; импорт java.util.hashmap; import java.util.list; import java.util.map; import org.sprimework.stertoity.controller; org.springframework.web.bind.annotation.requestmapping; импорт org.springframework.web.bind.annotation.responsebody; import com.alibaba.fastjson.json; import com.alibaba.fastjson.jsonarray; импорт com.alibaba.serializer. com.alibaba.fastjson.serializer.serializeconfig; импорт com.alibaba.fastjson.serializer.simpledateformatserializer; импорт com.mengdee.manage.entity.address; импорт com.mengdee.manage.entity.dog; import com.mengdee.manage.Entucation. com.mengdee.manage.entity.person; @controllerpublic class testcontroller {private static serializeconfig serializeconfig = new serializeconfig (); static {serializeconfig.put (date.class, new SimpleDateFormaterializer ("yyyy-mm-dd HH: MM: SS")); serializeconfig.put (double.class, new Doubeserializer (New DecimalFormat ("0,00"))); } @RequestMapping ("/index") public String Index () {return "index"; } // javabean to object @requestmapping ("/json") @responsebody public object json () {Person Person = new Person (); Person.setid (1L); Person.setName ("Mengdee"); Человек.setage ((короткий) 18); /// * {«День рождения»: нуль, «вес»: 0, «собаки»: нуль, «взрослый»: ложь, «хобби»: нулевой, «образование»: null, «id»: 1, «уровень»: «», «адрес»: null, «Возраст»: 18, «имя»: «mengdee», «гендер»: 0, «зал»: 0}/ Object json json вернуть Перссон; } // javabean to string @requestmapping ("/json2") @responsebody public String json2 () {Person Person = new Person (); Person.setid (1L); Person.setName ("Mengdee"); Человек.setage ((короткий) 18); // Если значение нуля используется, оно не может быть проверено. <dulch> wriseemapnullvalue </value> // "{" udly ": false," age ": 18,« пол ": 0," id ": 1," level ":" "," name ":" mengdee ",« зарплата »: 0,« вес »: 0,0}" String jSonstring = json.tojsonting (человек); вернуть JSonstring; } @RequestMapping ("/json3") @Responsebody public object json3 () {Person Person = new Person (); Person.setid (1L); Person.setName ("Mengdee"); Человек.setage ((короткий) 18); Person.SetBirthDay (новая дата ()); Object Personjson = json.tojson (человек); // json.tojson (человек) по умолчанию на миллисекунд «день рождения»: 1495073314780, // Использование серийного номера SerializeConfig для настройки форматирования для дат // "{" День рождения ":" 2017-05-18 10:19:55 "," Вес ": 0,0,« Взрослый »: FALSE,« ID »: 1,« Уровень »:« »,« Возраст »: 18,« Имя »:« Mengdee »,« Пол »: 0,« Зарплата »: 0}« String JSonstring = json.tojSonstring (PersonJson, SerializeConfig); вернуть JSonstring; } @RequestMapping ("/json4") @Responsebody public object json4 () {Person Person = new Person (); Person.setid (1L); Person.setName ("Mengdee"); Человек.setage ((короткий) 18); Person.SetBirthDay (новая дата ()); Person.seteducation (образование. Университет); // enumeration string [] hobbies = {"Чтение", "Туризм"}; Человек.sethobbies (хобби); Dog Dog1 = новая собака (1L, "Dog1", (короткий) 1); Dog Dog2 = новая собака (2L, "Dog2", (короткий) 2); Список <gog> dogs = new ArrayList <> (); Dogs.add (Dog1); Dogs.add (Dog2); человек. Setdogs (собаки); Адрес адрес1 = новый адрес (1L, «Шанхайский Пудун Новый район»); Адрес адрес2 = новый адрес (2L, «Шанхайский район Баошан»); Map <string, object> addressmap = new hashmap <> (); addressmap.put (address1.getid () + "", address1); addressmap.put (address2.getid () + "", address2); Person.setAddress (AdderMap); Object Personjson = json.tojson (человек); вернуть Перссон; } @RequestMapping ("/json5") @Responsebody public String json5 () {Dog Dog1 = New Dog (1L, "Dog1", (короткий) 1); Dog Dog2 = новая собака (2L, "Dog2", (короткий) 2); Список <gog> dogs = new ArrayList <> (); Dogs.add (Dog1); Dogs.add (Dog2); // list <t> -> json string jsonstring = json.tojsonstring (собаки, false); System.out.println (JSonstring); // json -> list <t> list <gog> parsearray = json.parsearray (jsonstring, dog.class); для (собака собака: Pacersearray) {System.out.println (Dog); } Map <string, dog> map = new hashmap <string, dog> (); map.put ("dog1", новая собака (1l, "dog1", (короткий) 1)); map.put ("dog2", новая собака (2l, "dog2", (короткий) 2)); map.put ("dog3", новая собака (3L, "Dog3", (короткий) 3)); // map -> json string mapjsonstring = json.tojsonstring (map, true); System.out.println (MapJSonstring); // json -> map @suppresswarnings ("unchecked") map <string, dog> map1 = (map <string, dog>) json.parse (mapjsonstring); for (String Key: map1.keyset ()) {System.out.println (key + ":" + map1.get (key)); } // array -> json string [] hobbies = {"a", "b", "c"}; String hobbiesstring = json.tojsonstring (Hobbies, True); System.out.println (Hobbies); // json -> array jsonarray jsonarray = json.parsearray (hobbiesstring); for (Object o: jsonarray) {System.out.println (o); } System.out.println (jsonarray); вернуть JSonstring; }}Swagger Integration
Шаг 1: Введите связанные зависимости
<depervice> <groupid> io.springfox </groupid> <artifactid> springfox-swager2 </artifactid> <sersion> 2.6.1 </version> <scope> compile </scope> </artifactid> <pergepact> <версия> 2.6.6 </version> </vehyse>
Шаг 2: конфигурация информации о чванстве
SwaggerConfig.java
@Configuration@enablewebmvc@enatorswagger2public class swaggerconfig {@bean public docket customdocket () {docket docket = new Docket (documentType.swagger_2); docket.apiinfo (apiinfo ()); docket.select (). API (requestHandlerselectors.withmethodannotation (apioperation.class)); docket.select (). Paths (pathselectors.regex ("/api /.*)). build (); вернуть Docket; } private apiinfo apiinfo () {contact contact = new Contact ("xiao ming", "http://www.baidu.com", "[email protected]"); вернуть новый Apiinfo ("Интерфейс API", // большой заголовок "Интерфейс API", // subtitle "0.0.1", // версия "www.baidu.com", // temonofserviceurl contact, // автор "api interface", // Ссылка отображает текст "http://www.baidu.com" // websive); }}ПРИМЕЧАНИЕ. Поскольку класс SwaggerConfig настраивает аннотации, этот класс должен быть отсканирован, то есть класс должен быть включен в контекст: компонент-сканирование.
Шаг 3: Используйте аннотации на классах, методах и параметрах
@Controller @requestmapping ("/api/v1") @api (description = "api interface") открытый класс Apicontroller {@Apioperation (value = "user login", notes = "Интерфейс входа в систему пользователя") @Apiresses ({@Apiresponse (code = 0, message = "success"), @Apiresson AllodalargumentException.class), @apiresponse (code = 10002, message = "ошибка пароля")}) @Requestmaping (value = "/user/login", method = requestMethod.post, производители = {"application/json; charset = utf-8; true) @requestparam String username, @apiparam (name = "password", value = "password", require = true) @requestparam String password) {return "{'username': '" + username + "', 'password': '" + password + "'}"; } @ApiimpliciteParams ({@apiimpliciteparam (paramtype = "header", name = "phone", datatype = "string", require = true, value = "номер мобильного телефона"), @Apiimplicitarparam (paramtype = "Query", name = "Nickname", datatype = ", string", tran varue = valleue ", vickname", vickname ". 666 "), @apiimplicitalparam (paramtype =" path ", name =" platform ", datatype =" string ", required = true, value =" platform ", defaultValue =" pc "), @apiimplicitarparam (paramtype =" body ", name =" password ", datAtype =" string ", value =" valuest ") "/{platform}/user/regist", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8;"}) @ResponseBody public String regist(@RequestHeader String phone, @RequestParam String nickname, @PathVariable String platform, @RequestBody String password){ return "{'username':'" + phone + "', «Прозвище»: '" + nickname +"', 'платформа': '" + platform +"', 'password': '" + password +"'} "; } @RequestMapping (value = "/user/list", method = requestMethod.get, products = {"application/json; charset = utf-8;"}) @responsebody public String getUserlist (pager pager) {return "[{'id':"+pagerpage ()+", 'username' 'Zhangsan "+pager.getSize ()+"'}] "; } @RequestMapping ("/docs") @apiignore public String test () {return "api-docs"; }}Пейджер
Public Class Pager {@ApimodelProperty (value = "номер страницы", обязательный = true) private int page; @Apimodelproperty (value = "Количество на страницу", требуется = true) private int size; public pager () {} public int getPage () {return Page; } public void set -page (int page) {this.page = page; } public int getSize () {return Size; } public void setSize (int size) {this.size = size; }}Общие аннотации:
Шаг 4: Access /V2 /API-DOCS
Посетите http: // localhost: 8080/имя проекта/v2/api-docs в браузере, если есть содержание JSON, это нормально
Шаг 5: Скачать Swagger-UI
Скачать https://github.com/swagger-api/swagger-ui из github. Обратите внимание, что вам нужно выбрать загрузку v2.2.10 (https://github.com/swagger-api/swagger-ui/tree/v2.2.10 (локальная загрузка)). Метод интеграции, который больше, чем эта версия, отличается.
Метод интеграции: поместите все файлы в каталог DIST в соответствии с V2.2.10 в статические файлы в вашем проекте и используйте следующий код, чтобы перезаписать часть скрипта в index.html
<script type = "text/javascript"> var baseurl = ""; $ (function () {var url = window.location.search.match (/url = ([^&] +)/); if (url && url.length> 1) {url = decodeuricomponent (url [1]);} else {// Адрес api-docs, описанный выше url = baseurl + "/webapp/v2/api-docs"; (window.swaggertranslator) {window.swaggertranslator.translate (); (Swaggerapi, Swaggerui) {if (typeof initoAuth == "function") {initoAuth ({clientId: «your-client-id», clientsecret: «ваш клиент-секретный-if-required», «realm:« your-realms », appname:« your-app-name », scopeSeparator:«, «relectoryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStryStr } if (window.swagertranslator) {window.swagertranslator.translate (); «Нет», jsoneditor: False, Apissort: «Alpha», Defaultmodelrendering: «Schema», ShowRequestheaders: False}); «Заголовок»); </script> Шаг 6: Доступ к индексу. HTML, измененный выше
http: // localhost: 8080/name проекта/Static/третья сторона/swagger-ui/index.html
Примечание. Поскольку вы хотите получить доступ к статическим ресурсам, убедитесь, что статические ресурсы можно получить с помощью SpringMVC. Если вы не можете получить доступ, сделайте следующую конфигурацию:
1. Добавить процессор сервлета по умолчанию в файл конфигурации пружины
<!-Фильтруя статические ресурсы-> <MVC: по умолчанию-спертлету/>>>>>
2. Добавить статические файлы в фильтрование в web.xml
<!-- Filtering static resources--><servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.js</url-pattern> <url-pattern>*.css</url-pattern> <url-pattern>/assets/*"</url-pattern> <url-pattern>/images/*</url-pattern></servlet-mapping>
Пример структуры кода проекта:
Полный пример Демо-Адрес: http://xiazai.vevb.com/201804/yuanma/platform-springmvc-webapp(Vevb.com).rar
другой
О Spring-servlet.xml и ApplicationContext.xml
Springmvc предоставляет два файла конфигурации Spring-servlet.xml и ApplicationContext.xml
Spring-servlet.xml-это уровень контроллера, а область действия-это контрольный слой. Имя по умолчанию [Servlet-name] -servlet.xml
По умолчанию он помещается в Web-Inf/ Directory. SpringMVC автоматически загрузится, и его также можно настроить в web.xml.
<servlet> <servlet-name> spring-mvc </servlet-name> <vervlet-class> org.springframework.web.servlet.dispatcherservlet </servlet-class> <init-param> <mean-name> contextconfiglocation </param-ame> <param-value> /web-inf/spring-servlet.xml </param-ame> <param-value> /web-inf/spring-servlet.xml </param-ame> <param-value> /web-inf/spring-servlet.xml </param-ame> <param-value> /web-inf/spring-servalce. <Load-on-startup> 1 </load-on-startup> </servlet>
Как правило, некоторые конфигурации, связанные с контроллером, настроены в Spring-servlet.xml, такие как разрешение представления, отображение статических ресурсов, анализ результатов возврата и т. Д.
Просмотр анализа
Статическое картирование ресурсов
<mvc: resources location = "/static/" mapping = "/static/**"/> <mvc: resources location = "/images/" mapping = "/static/**"/> <mvc: resources location = "/css/" mapping = "/static/**"/> <mvc: resources manate = "/js/" mapping = "/static/**"/> <mvc: resources = "/js/" "/**"/> <mvc: resources = "/jS/" "/**"/> <MVC: Resources = "/JS/" location = "/html/" mapping = "/static/**"/> <mvc: resources location = "/upload/" mapping = "/static/**"/>
org.springframework.context.support.resourcebundlemessagesource
Анализ результатов
3. ApplicationContext.xml-это конфигурация системного уровня, и ее объем функции является системным контекстом. Его инициализация должна быть настроена в контексте-параме в web.xml.
<context-param> <param-name> contextConfiglocation </param-name> <param-value> classpath: conf/spring/spring-*. xml </param-value> </context-param>
4. Что касается ApplicationContxt.xml, это обычно делится на несколько файлов конфигурации в соответствии с функцией, такой как:
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.