0. Напишите впереди
Дружественные советы: адрес загрузки ниже.
Проект был в основном завершен. С помощью этого резюме я написал 30 блогов, связанных с этим проектом, которые много накопили. Процесс написания блога - это процесс укрепления идей. Это очень полезно для меня и также может помочь другим. Кстати, определенно будет много исключений в процессе обучения. Первое, что нам нужно сделать, это найти это исключение. Как правило, один или несколько, вызванный: xxx сопровождается исключением. Это причины исключения. Как правило, мы ищем вызванное дном, которое часто является корнем проблемы. Если вы не можете решить это самостоятельно, вы можете искать в Google или Baidu (не публикуйте много аномалий при поиске, обратите внимание на ключевые детали!). Как правило, 99,9% проблем, с которыми мы сталкиваемся, столкнулись наши предшественники, и в основном все они могут быть решены. Я в основном делаю это, когда сталкиваюсь с проблемами, которые нельзя решить. Если я сам решу их больше, я почувствую это ~ Наконец, я надеюсь, что все получат что -нибудь, читая мой блог!
Я не скажу чушь. Давайте обобщу проект этого онлайн -торгового центра ниже. Я не буду покрывать все. В основном он разделен на несколько модулей для обобщения, в том числе какие технологии используются и т. Д. Я приложу быструю ссылку на конкретные детали в статье. Вы можете проверить конкретную статью.
Вспоминая этот проект, его можно разделить на эти основные модули:
--- Создание проектной среды
--- Построить систему управления бэкэнд
--- Построить страницу дисплея на стойке регистрации
--- Функции, связанные с корзиной, связаны
--- Онлайн-функция оплаты
--- Отправить по электронной почте и текстовым сообщениям
--- Приложение доменного имени и развертывание проекта
--- Проверка формы и отображение отчета
Ниже приведен конкретный анализ для каждого модуля.
1. Строительство проектной среды
Это незаменимая связь в каждом проекте, и будет много грязных проблем. Когда я впервые начал изучать SSH, я всегда изо всех сил пытался построить окружающую среду, потому что я был не очень опытным, но я просто хотел построить ее «ритмично». То есть создание экологического проекта требует шаг за шагом, немного. Многие люди импортируют все пакеты JAR, а затем напишут все файлы конфигурации или вставьте их из других мест, а затем запустите их, а затем повесят их ... а затем найдут различные проблемы. Зачем беспокоиться? Таким образом, даже если вы создаете его 10 раз, вы не сможете сделать это легко. Вы должны съесть рис за один укус, и вам нужно идти шаг за шагом.
Процесс, которым я лично следую для строительства среды SSH:
Spring> Hibernate> Spring Integration Hibernate> Struts2> Spring Integration Struts2
После каждого шага напишите тест -тест. Это очень важно, потому что, если вы пойдете шаг за шагом, вы будете знать, куда идти, если совершите ошибку и где найти проблему. Самое главное, что если вы станете опытным в этом процессе, будет легко получить среду в следующий раз. Для получения дополнительной информации о строительстве среды SSH, см. Следующую статью:
Интегрировать Struts2, Hibernate4.3 и Spring4.2
Основное добавление, удаление, поиск и модификация, извлечение обслуживания и действия и замена XML на аннотации
2. Создайте систему управления бэкэнд
Я использую EasyUI для создания системы управления бэкэнд. Честно говоря, у меня есть лишь небольшое понимание Easyui. Я не знаю много о передних вещах, но я немного понимаю. Я также проверил их все, когда использую их. Я не узнал их систематически, поэтому у меня нет хорошей системы знаний, но это не влияет на игру. Программисты любят говорить, что они играют в технологию, и они звучат довольно высоко. Я постепенно пострадал, и мне нравится это говорить, но я действительно играю с фронтальным ...
JQUERY EasyUI-это коллекция плагинов пользовательского интерфейса, основанной на JQUERY, и цель JQUERY Easy-помочь веб-разработчикам создать интерфейс пользовательского интерфейса, богатый функциями и красиво. Разработчикам не нужно писать сложный JavaScript, и им не нужно иметь глубокое понимание стилей CSS. Все разработчики должны знать, это некоторые простые HTML -теги.
Запросы EasyUI - все запросы AJAX, и никаких новых страниц не появится, все они находятся на вкладке, или окно появляется. Система управления бэкэнд в основном разделена на три части: управление категориями продукта, управление продуктами и управление продажами. Управление продажами последнее.
2.1 Управление категориями продукта
Эта часть в основном включает в себя построение среды EasyUI и фона, каскадные запросы и страница баз данных, отображение данных DataGrid, интеграция JSON Struts2 и категории продуктов, удаление, обновление и поиск. Это также следует за последовательности завершений в этом разделе.
DataGrid отображает данные в форме таблицы, и разработчикам не нужно иметь конкретные знания для их управления. Он имеет хороший справочный документ и более подробный. В этом проекте я также представил несколько способов создания данных, а также кратко ввел некоторые свойства DataGrid. Это начало. Я также вступительный инструмент. Только разрабатывая больше, могу ли я овладеть этой технологией.
Функции добавления, удаления, обновления и поиска категорий в основном используют функцию проверки, которая поставляется с EasyUI. При добавлении категорий продукта убедитесь, является ли вход в поле ввода правильным, независимо от того, требуется ли он и т. Д.; Сначала выбираются определенная строка или несколько строк при удалении; При обновлении только одна строка может быть обновлена за раз и т. Д., Все из которых являются запросами AJAX.
Для получения дополнительной информации об этой части я уже классифицировал ее, пожалуйста, обратитесь к этим статьям:
Используйте easyui, чтобы создать структуру бэкэнд -страницы. Меню EasyUI для реализации каскадного запроса и страниц баз данных. Функция отображения данных DataGrid Function Struts2 и JSON интегрированный DataGrid для реализации DataGrid функции запроса и удаления для реализации DataGrid функции с добавлением и обновлением для реализации функции добавления и обновления
Вот проблемы, с которыми я столкнулся:
Задача исключения из ленивого загрузки в struts2 и json Integration hibernate4 execution save () или update () недействительна
2.2 Управление продуктом
Управление продуктом также включает в себя такие операции, как добавление и удаление, что такое же, как управление категориями. Есть одна вещь, которая добавляет продукты и необходимо загружать фотографии продуктов. Это включает в себя функцию Struts2 для реализации загрузки файлов. Нам нужно построить папку на стороне сервера для хранения загруженных файлов, а затем написать модель для получения файлов. Что касается загрузки файлов, нам нужно специально написать класс инструментов. Вот как разработка в проекте. Общий код должен быть извлечен, даже если есть только одно предложение кода, он должен быть извлечен! Это привычка и должна быть сделана. Для получения конкретной информации, пожалуйста, обратитесь к статьям, перечисленным ниже:
Основной модуль категории продукта построен, и реализуется запрос и удаление функции продукта. Реализация функции продукта реализована. Реализация функции загрузки файла реализована.
3. Построить страницу дисплея на стойке регистрации
Конечно, передняя страница не была разработана мной. Я суммировал некоторые первые технологии, связанные с фронтальным дисплеем, такими как: Слушатель получает данные домашней страницы, синхронизирует данные домашней страницы Timer и кэш обработки кэша Hibernate уровня 2 популярных продуктов.
Когда я изучал сервлет, вот как я сделал данные на домашней странице. Я использовал кадр и отобрал данные справа. Затем я прыгнул к сервлету на правой части в index.jsp, а затем пошел в сервлет, чтобы вытащить все продукты из базы данных, поместить их в поле запроса и принес новую страницу JSP для отображения. Хотя это может быть достигнуто, это очень глупо. Здесь я использовал слушателя, чтобы сделать это. Во -первых, я сам определил слушателя, и когда проект начался, я взял всю информацию о продукте в базе данных, поместил его в домен приложения, а затем непосредственно использовал EL Expressions, чтобы извлечь его из домена приложения на домашней странице.
Есть еще одна проблема. Когда я добавляю новый продукт в систему управления, я должен перезапустить Tomcat, чтобы добавить новый продукт в домен приложения. Поскольку он был в домене приложения после того, как я его вынул, он полон решимости умереть. Недавно добавлено позже нет в домене приложения. Чтобы решить эту проблему, я использовал таймер для синхронизации данных домашней страницы. Поэтому я переписал слушателя, которого я писал ранее, установил таймер в слушателе, поместил код, чтобы получить данные продукта в базе данных в задачу таймера и немедленно выполнить его, а затем выполнять его каждые 6 часов (время может быть установлено по желанию сами), то есть повторно почистится продукты в дате каждые 6 часов и сохранять его в доме приложения. Это то, что делает общий веб -сайт, например, личная страница CSDN, рейтинг обновляется каждый день, вероятно, около 10 часов вечера, я забыл конкретное время. В то время обновление увидит обновление данных, которое также уменьшит давление на сервер.
Для конкретных технических деталей в этом разделе, пожалуйста, обратитесь к следующим статьям:
Используйте слушателя, чтобы отобразить данные на домашней странице. Как получить поток файла конфигурации пружины, синхронизация времени таймера
4. Функции, связанные с корзиной, связанные с покупкой
Основные технологии, связанные с корзиной, включают в себя: фоновую обработку логики корзин для покупок и предметов покупок, логин суждения фильтра, каскадные заказы в базу данных и кэширование страниц.
Для покупок корзины в основном содержит некоторую логику реализации в бэкэнде. В корзине есть покупки. Что это значит? Мы все знаем, что когда мы покупаем вещи на TMALL, мы можем поставить различные продукты в корзину, а затем в корзине есть много продуктов, и каждый продукт может иметь несколько количеств. Каждый продукт и связанная с ним информация является предметом покупок. Поэтому, добавив корзину для покупок, мы должны сначала заполнить товар для покупок, а затем добавить этот предмет для покупок в корзину.
Когда пользователь хочет урегулировать, мы должны сначала определить, вошел ли пользователь. Он использует технологию фильтров, которая специально фильтрует определенный тип URL, и определяет, есть ли пользовательский объект в текущем сеансе в фильтре. Если есть какие -либо признаки того, что вход в систему вошел, просто отпустите его напрямую. Если нет, перейдите на страницу входа в систему, чтобы позволить пользователю входить в систему. После входа в систему перейдите на страницу, которую пользователь изначально хотел. Это как швейцар ~ глядя на дверь ~
Как уже уже упоминалось, информация о заказе включает в себя корзины для покупок и товары для покупок. Когда мы вступаем в заказы, мы должны рассмотреть их каскадные проблемы. Мы можем установить соответствующие атрибуты аннотации в Pojos двух. Тем не менее, есть предпосылка. Например, если есть корреляция внешнего ключа, поля в внешней ключевой части соответствующего pojo должны быть присвоены хорошее значение перед входом в Pojo. Например, заказ должен быть добавлен в строку, а атрибутам заказа в позиции также должны быть присвоены хорошее значение, прежде чем их можно будет передать в Hibernate. Связайте каскаки в библиотеку в соответствии с настроенными аннотациями (или XML -файлом).
Проблема с кэшированием страницы относится к этому, когда пользователь подтверждает заказ, если он нажмет назад, он вернется на страницу подтверждения заказа. Страница подтверждения заказа только сейчас выходит снова, и сеанс все еще существует, и информация все еще остается информацией только сейчас. Это, очевидно, не тот результат, который мы хотим. Нам нужно обработать его в стойке регистрации и одновременно.
Пожалуйста, обратитесь к следующим статьям для конкретных технических деталей в этом разделе:
Реализация основных функций фильтра для корзины для покупок для реализации функции входа в систему для определения каскадных проблем хранения и кэширования страниц информации о заказах
5. Функция онлайн -оплаты
Эта часть в основном представляет некоторые вещи о платежном интерфейсе Yibao. На самом деле, функции онлайн -платежей различны для разных третьих лиц. Основная цель - понять процесс разработки функций онлайн -платежей. Конкретные технические данные зависят от информации, предоставленной конкретными третьими лицами. Но общий процесс: вызов интерфейса третьей стороны> Вызов интерфейса банка> Завершение платежа> третья сторона возвращается на указанную нами страницу.
Эта часть также включает в себя важную технологию, и это то, как Struts2 обрабатывает несколько запросов модели. Как правило, Struts2 может использовать модель в действии после реализации ModeDriven <dolain>, но что, если сейчас есть две модели? В Struts2 есть еще один интерфейс, называемый параметрами. Пока этот интерфейс реализован и определяется карта, которая хранит параметры, он может получать все параметры в запросе. Мы можем судить, какую модель использовать на основе различных параметров. Этот метод может решить проблему обработки нескольких запросов модели Struts2.
Для получения технических данных в этом разделе, пожалуйста, обратитесь к следующему сообщению в блоге:
Введение в платформу онлайн -платежей, демонстрация процесса оплаты Yibao
Получите отображение значков банка и страниц платежей, чтобы завершить логику функции онлайн -платежей, как обрабатывать несколько запросов модели в Struts2
6. Функция отправки электронной почты и SMS
Отправка электронных писем и отправка текстовых сообщений относительно проста. Они оба являются фиксированными API, просто знайте, как их использовать. Просто проверьте их, и я тоже не могу их вспомнить. Функция отправки электронной почты должна импортировать пакет Mail.jar, а затем отправлять электронные письма в соответствии с процессом. Функция SMS должна сначала подать заявку на функцию отправки SMS. После завершения заявки третья сторона предоставит нам некоторые интерфейсы API. Мы можем разработать функцию отправки SMS до тех пор, пока мы ее ссылаемся. Это несколько похоже на функцию оплаты, и все они полагаются на сторонние платформы.
В этой части нет технических трудностей, в основном процесса, связанные статьи следующие:
Отправить функцию SMS после завершения успешного платежа за заказ с использованием электронной почты Java для пользователей
7. Приложение для пространства доменных имен и развертывания и выпуска проектов
Этот раздел в основном представляет, как подать заявку на свободное доменное пространство (бесплатно только для 15 дней ~, но для обучения, достаточно ~). Хотя не все из них свободны, нам в основном нужно выяснить этот процесс. Лучше пройти через это самостоятельно. Он не обязательно должен загружать полный проект. Страница JSP или статическая страница HTML в порядке.
Существует два основных способа развертывания и публикации проекта: один из них - загрузка с использованием FTP, но это медленно и может потерять данные. Личный опыт - это выпустить это немного; Другой способ - подать заявку на пространство доменных имен для обеспечения среды развертывания. Нам просто нужно экспортировать проект в качестве военного пакета, а затем развернуть военный пакет.
Есть много деталей, на которые можно обратить внимание до развертывания проекта, например, изменение некоторых путей, изменение некоторых данных и т. Д. Эти детали подробно объясняются в моем блоге. Этот раздел содержит одну статью следующим образом:
Приложение для доменных имен пространство и развертывание и выпуск проекта
8. Проверка формы и отображение отчета
Некоторые вещи добавляются позже, которые являются Ajax динамически обновляют количество продуктов в корзине покупок, проверку форм и отображения отчетов.
Количество продуктов в динамическом обновлении корзины для корзины является чистой технологией Ajax. Я только что узнал это. Проверка формы является в основном формой входа в систему. Я не вошел в этот проект, но я сделал форму входа в систему, и функция проверки также выполнена. Основное использование-подключение проверки проверки jQuery. Этот плагин все еще очень мощный. Вы можете напрямую добавить форму входа в проект и установить соответствующий прыжок. Основным использованием JSChart для отображения отчетов является JSChart. Этот инструмент очень полезен и может генерировать код ответа JS. Что нам нужно сделать, так это отправить запросы AJAX на бэкэнд, извлечь данные из бэкэнда в соответствии с фактическими потребностями и передать их на фронт, чтобы отобразить его с помощью диаграммы JSChart.
Я перечислю сообщения в блоге в этом разделе ниже:
Используйте технологию AJAX для частичного обновления количества продукта и общей ценовой плагины jQuery-Validate Verification для отображения отчетов о продажах продуктов в фоновом режиме с использованием технологии JSChart
Это проект онлайн -торгового центра, который так много написал. Исходный код в канале загрузки CSDN синхронизирован с моим блогом. Если вам это нужно, вы можете скачать исходный код, который я загрузил в CSDN (бесплатно ~ Все мои ресурсы бесплатны). Если я захочу продолжать улучшать его позже, я помесчу это в свой GitHub. Каждый также может следовать за моим GitHub (хотя это средний ~) Star Project I Загружен ~ Ниже приведен конкретный адрес загрузки:
Скачать адрес (синхронизируйте с контентом блога)
Адрес загрузки GitHub (если есть обновление позже, он будет размещен здесь)
Оригинальный адрес: http://blog.csdn.net/eson_15/article/details/51479994#download
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.