1. Начало работы со SpringBoot
Сегодня я увидел на MOOC.com учебник вроде Spring Boot, как изучающий JavaWeb, я должен был хотя бы слышать о нем, но я не знаю, что это такое.
Я только знаю, что он очень удобен в использовании и не требует никакой настройки. Так что я взял некоторое время, чтобы следовать за ним.
Адрес видео:www.imooc.com/learn/767
Код из учебника:git ee.com/Liao Lineage Ох ты...
1.1 Запуск SpringBoot
В туториале есть три способа запустить SpirngBoot (С точки зрения среды разработки):
- Использовать стартап прямо в идее (чаще всего используется)
- Используйте команду mvn для запуска
- Используйте mvn для компиляции, затем создайте пакет jar в каталоге класса и используйте команду Java для запуска
1.2 Конфигурация свойств проекта
Используя SpringBoot в качестве нашего фреймворка, даже Tomcat не нужно настраивать отдельно. Порт Tomcat по умолчанию — 8080. Итак, если мы хотим изменить порт, как его изменить? ? В проекте могут быть какие-то атрибутивные переменные, так как же это настроить? ? ?
Springboot — это файл конфигурации для application.properties, который мы можем использовать.
Однако у нас может быть лучший метод настройки, используя файл yml, этот файл конфигурации более лаконичен в использовании.
Настройте свойство в файле yml, затем мы можем использовать свойство @value в контроллере, чтобы получить его.
Если наши свойства конфигурации являются обычными (категоризированными), например свойства, настроенные для системы System, мы можем создать класс Java для управления ими.
Тогда вам не нужно использовать атрибут @value, чтобы получить его отдельно, когда вы его получите. Просто получите переменные-члены класса Java напрямую.
Конечно, здесь задействованы две аннотации:
@configurationProperties
@Component
В другом примере переменные конфигурации нашей производственной среды и среды разработки, вероятно, будут разными.Например, наша переменная пути в среде разработки:http://localhost:8080
. И путь пути в нашей производственной среде:zhognfucheng.site
. Это создает несоответствие, и в springBoot это несоответствие прекрасно устраняется.
- Вы можете отделить файл конфигурации для среды разработки от файла конфигурации для производственной среды и использовать общий файл конфигурации, чтобы указать, какой файл конфигурации использовать.
- При использовании переменной java для запуска проекта Springboot вы можете указать, какой файл конфигурации использовать.
2. Обзор
2.1 Использование контроллера
SpringBoot не рекомендует использовать JSP, и для возврата страниц рекомендуется использовать шаблоны. Шаблон тимелеафа, если при возврате на страницу ошибка, посмотрите, не используется ли шаблон.
@RestController = @Controller + @ResponseBody
2.2 Унифицированная обработка исключений
Я столкнулся с унифицированной обработкой исключений в Struts2 и springMVC, и методы аналогичны. Определите исключение вашей собственной системы, чтобы лучше устранить ошибку.
И я многое узнал об унифицированной обработке исключений в этом курсе:
- Обычно мы возвращаем данные JSON на интерфейсную страницу в контроллере.Если есть исключение, вы создаете исключение в одиночку.Если вы не выполняете никакой обработки, возвращенный формат JSON должен отличаться от успешного доступа, тогда это будет вызвать путаницу на переднем плане при разборе. Чтобы решить эту ситуацию, мы можем инкапсулировать отдельный класс, чтобы возвращать переменные-члены класса: код, сообщение, данные. Для этого класса возвращаемый формат JSON такой же.
- Как упоминалось ранее, код возвращаемого класса не следует писать отдельно. Перечисление можно использовать для обслуживания. Нам очень удобно работать.
- Служба выдает пользовательское исключение, и контроллер также выдает пользовательское исключение. Обработчик исключений Spring используется для захвата, вывода и возврата JSON на главную страницу.
2.3AOP
Использование AOP в среде Springboot также является необходимостью импорта координат Maven. Точки знаний и весеннее обучение почти ...
Используя журнал, можно использовать sl4jlog, это весна.
Зарегистрируйте возвращенные данные, прежде чем возвращать их в браузер:
3. Знай новое
3.1 SpringData JPA
Я слышал о SpringData JPA напрямую, но никогда не понимал этого. Курс говорит, что это стандарт, который может облегчить нашу CURD базы данных.
Я также зашел в Интернет, чтобы прочитать некоторую информацию.Его реализация по умолчанию - Hibernate.Поэтому использование JPA эквивалентно использованию Hibernate.
Я думаю, что он на самом деле инкапсулирует Hibernate API, и разработка Hibernate проще.
Создайте интерфейс для реализации интерфейса, предоставленного JPA, тогда созданный нами интерфейс будет иметь JPA, который является API Hibernate.
Курсы, использующие RESTful API для CRUD:
3.2 IDEA похожа на POSTMAN
Автор видео использует программу POSTMAN для проверки http запроса, в комментариях он сказал, что в IDEA тоже есть такая функция:
У Idea есть клиент для отдыха, который может заменить почтальона Tools -> Test RESTful web service
я тоже удачно нашла..
Поскольку используется стиль RESTful, в контроллере можно использовать такие аннотации, как GetMapping, PutMapping и DeleteMapping.
3.3 Модульное тестирование
Уровень SERVICE такой же, как модульный тест до того, как я узнал, то есть AutoWired объект службы, а затем метод тестирования.
И тестирование контроллера, также называемого тестированием API в руководстве, это мой первый контакт. Тестирование API фактически имитирует использование HTTP для тестирования.
Такой объект, как MOCK, используется, чтобы помочь нам протестировать:
Следует также отметить, что если mvn используется для упаковки, это автоматически поможет нам выполнить модульное тестирование при упаковке. Поэтому иногда мы не хотим выполнять модульное тестирование, когда оно упаковано, поэтому нам нужно написать следующие параметры:
3.4 Горячее развертывание и горячая загрузка
Изучив вышеупомянутый SpringBoot, я не подумал, что этого достаточно, и тогда я нашел курс:www.imooc.com/learn/915
В заголовке написано Spring Boot и горячее развертывание. Поэтому я снова пошел учиться.
Хорошо, вернемся к горячему развертыванию и горячей перезагрузке. ------
Термины «горячее развертывание» и «горячая загрузка» поначалу меня смущают, но я слышал оба термина. Поскольку я использовал плагин JRebel в Idea, я понимаю общую идею.
Горячее развертывание означает:Нам не нужно перезапускать сервер, и мы можем заменить старый военный пакет новым военным пакетом..
Горячая перезагрузка означает:Мы можем обнаружить класс и восстановить файл Bytecode класса, не перезапустив сервер.
Будь то горячее развертывание или горячая загрузка, это делается на основе загрузчика классов Java.
3.4.1 Процесс загрузки класса Java
Файлы Java компилируются в файлы байт-кода, а загрузчик классов запускает файлы байт-кода на JVM.
Этап проверки: файлы байт-кода не наносят вреда JVM
Этап подготовки: присвоит начальное значение, а не значение в программе. Например: интервал = 0
Фаза синтаксического анализа: символические ссылки становятся прямыми ссылками
Фаза инициализации: инициализировать значение программы, есть пять случаев приведут к осуществлению времени инициализации:новый, отразить, сначала инициализировать родительский класс, а затем инициализировать подкласс, основной метод, динамический язык JDK1.7 ref_
Окончательная модификация не сработает, потому что она будет помещена в постоянный пул.
Для горячей загрузки по-прежнему используется java-код, поэтому я не стал заморачиваться. Воспользуйтесь им и вернитесь. !
3.4.2 Горячее развертывание Tomcat
Tomcat может реализовать горячее развертывание тремя способами:
-
Запустите Tomcat напрямую, а затем поместите проект в WebApp
-
Измените servlet.xml, добавьте реализацию атрибута в тег контекста.
-
Настроив файл xml, поместите его в файл localhost. Я думаю, что это продолжение второго пункта
3.4.3 Горячее развертывание Spring Boot
springBoot热部署3种方式:
1、在plugin标签中加入插件
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.6.RELEASE</version>
</dependency>
</dependencies>
进入pom文件的目录输入 mvn spring-boot:run启动
2、启动的加入参数 引用springloaded jar包
-javaagent:'jar包路径' -noverify
3、pom文件加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
2 января 2018 г. 15:02:13
Наконец, используйте горячее развертывание SpringBoot в соответствии со следующим сообщением в блоге:blog.CSDN.net/U013938484/...
Стоит отметить, что он не компилируется автоматически под IDEA, поэтому для его достижения нужно нажать Ctrl+F9!
4. Расширенное чтение
Позже я использовал SpringBoot для создания простого проекта и столкнулся с множеством проблем и связанных с ними знаний, которые я не затронул. Ниже я дам времяПоиск материалов и возникшие проблемы и решения
4.1 Ссылки на учебные пособия по SpringBoot:
- Блог. Brother Space.com/spring-boot...
- Woo woo.cn Блог на добь // Магический Сэм / ...
- SpringBoot интегрирует mybatis, который на данный момент не используется и может быть использован в будущем:
- springBoot Github Demo:
- Демо, интегрированное с популярными фреймворками (МООК, соответствующие курсам)
4.2 Проблемы, с которыми сталкивается SpringBoot, и решения
- Тестовый контроллер использует тест MOCKMVC
- перехватчик SpringBoot
- Перехватчик Springboot не может быть введен в bean-компонент
- Появляется: Не удалось найти приемлемые причины представления и решения
- blog.CSDN.net/нео Смит/AR…
- Либо из-за возвращенных данных JSON, а вы вернули страницу (на использование RESTCONTROLLER не обратил внимания)
- В SpringBoot используется унифицированный метод обработки исключений:
- springBoot интегрированный Freemarker
5. Наконец
SpringBoot может заставить нас упростить утомительную настройку и упростить зависимости пакетов Maven (минусы: заодно добавить некоторые пакеты, которые нам не нужны). В целом, это очень полезный фреймворк (интегрированный со многими полезными функциями, и его очень удобно интегрировать с другими фреймворками), а стоимость обучения очень низкая (если вы изучили SpringMVC, вы можете приступить к работе за считанные минуты), что очень подходит для создания окружающей среды.
Если в статье есть какие-либо ошибки, пожалуйста, поправьте меня, и мы сможем общаться друг с другом. Учащиеся, привыкшие читать технические статьи в WeChat и желающие получить больше ресурсов по Java, могутОбратите внимание на публичный аккаунт WeChat: Java3y