Проблема версии spring-boot заставляет разработчиков сомневаться в жизни

Spring Boot задняя часть Spring Nginx
Проблема версии spring-boot заставляет разработчиков сомневаться в жизни

1. Проблемы возникают

Когда мы обновляем фреймворк со старой версии на новую, могут последовать различные ямы совместимости, что обычно неожиданно, потому что в новой версии могут быть удалены некоторые элементы конфигурации старой версии. Также возможно, что элементы конфигурации старой версии изменена версия и т.д.

Нет, сегодня Xiaobian столкнулся с такой ямой, эта яма из-за того, что я поставилspring-bootИзменения были внесены после обновления версии, что заставило меня некоторое время подозревать, что я где-то что-то неправильно настроил. Давайте посмотрим, что это за яма?

когда мы развиваемсяspring-bootПри применении приложения часто необходимо настроить некоторые свойства системы, например, если вы делаете систему в7000порт работает, то вам просто нужноappication.propertiesДобавьте в файл следующие элементы конфигурации:

server.port=7000

Или, если вы хотите ограничить размер загружаемых файлов, вы можете настроить следующее:

spring.http.multipart.max-file-size=10M

Вот проблема, которую я обнаружил, когда обновил весеннюю версию с 1.5.7 до 2.0.0.server.context-pathПункт конфигурации не действует, а конфигурация редактора выложена ниже:

application.properties

server.port=7001
server.context-path=/hello

JsonBackController.java

package com.example.jsonpDemo.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import com.example.jsonpDemo.pojo.User;

/**
 * 
 * The class JsonBackController.
 *
 * Description:该控制器返回一串简单的json数据,json数据由一个简单的User对象组成
 *
 * @author: huangjiawei
 * @since: 2018年6月12日
 * @version: $Revision$ $Date$ $LastChangedBy$
 *
 */
@RestController
@RequestMapping(value = "/map")
public class JsonBackController {
    @RequestMapping(value = "getUser.json")
    public User getUser() {
    	return new User("huangjiawei", 22);
    }
}

Приведенная выше конфигурация обычно означает, что после запуска приложения вы вводите в браузереhttp:localhost:7001/hello/map/getUser.jsonдолжен быть в состоянии выполнитьgetUser()метод, но вspring-boot 2.0.0Версия сообщила об ошибке 404, потому что редактор одновременно развернул приложение на сервере Alibaba Cloud и использовал nginx для соответствующей переадресации, что однажды заставило меня задуматься, не ошиблась ли моя конфигурация на nginx.nginx -tПосле этого было установлено, что синтаксической ошибки нет, и другие приложения также могут нормально обращаться к нему.

Позже я подозревал и то, и другое, почти не сомневался в своей жизни, в конце концов, я узнал, что это вызвано проблемой версии, до версии 2.0.0.server.context-pathКонфигурация действительна, но изменена на более позднюю версию 2.0.0server.servlet.context-path, чтобы опубликовать соответствующие доказательства, я искал родной город spring-boot на github и разместил его детище ниже:GitHub.com/spring-pro — это…

Суммировать

На этот раз мне потребовалось некоторое время, чтобы разобраться.Думаю, это тоже связано с отсутствием у меня опыта.Поэтому редактор считает, что если вы столкнетесь с сопутствующими проблемами разработки в будущем, вам стоит научиться копировать структуру фреймворка.После все, сокровища есть. ! Посмотрите, какие обновления доступны в новой версии, а затем подумайте о переходе на другую версию. Но если ваше приложение уже запущено в производственной среде, переключение версии должно учитывать степень воздействия и не затрагивать другие бизнес-функции.

spring-bootКонтента по-прежнему много, эта структура также является относительно популярной в настоящее время серверными микросервисами, и это также способspring-cloudЕдинственный выход, давайте работать вместе!