Сообщество «Фэйци» — версия с открытым исходным кодом
Введение
Сообщество «Фэйци» существует уже почти два года. В последнее время я не могу придумать, какие новые функции можно добавить, и поэтому решил открыть исходный код. Я один разрабатывал сообщество, но в конечном итоге это невозможно, чтобы оно развивалось дальше. Поэтому я решил открыть исходный код. Перед этим я долго колебался, так как казалось, что я отдаю то, над чем работал с большим трудом. Но потом я подумал, что это может помочь развитию моего сообщества, а идеи других людей могут вдохновить меня. Поэтому я принял решение открыть исходный код.
Прошло много лет, и я снова посмотрел на свой проект. Не знаю, устарел ли он. Адрес веб-сайта изменился, пожалуйста, подпишитесь:
Адрес веб-сообщества: https://www.f2qu.com. Уже поддерживается HTTPS.
QQ-группа для обсуждения: 632118669.
Я также принимаю некоторые простые проекты по вторичной разработке и зарабатываю немного денег, чтобы содержать семью.
Если у вас есть вопросы, вы можете задать их ниже или присоединиться к группе для обсуждения.
Этот проект изначально был разработан с использованием Spring MVC. Позже я услышал от людей в группе, насколько хорош Spring Boot, и перешёл на его сторону. С тех пор я начал своё путешествие со Spring Boot.
Проект Spring MVC здесь не демонстрируется, потому что слишком много конфигурационных файлов, которые даже думать о них утомительно. Давайте вместе присоединимся к сообществу Spring Boot!
В этом проекте используется Hutool (https://www.hutool.club/) в качестве инструментальной поддержки. Он вдохновлён проектами Zheng (https://gitee.com/shuzheng/zheng) и RuoYi (https://gitee.com/y_project/RuoYi), а также проектом Jeesuite Libs (https://gitee.com/vakinge/jeesuite-libs). Эти три проекта оказали мне большую помощь. Здесь я хотел бы поблагодарить авторов этих трёх проектов. На странице UI используется Layui, интегрированный с Alibaba Cloud OSS (поддерживает загрузку как на стороне клиента, так и на стороне сервера), поддерживает интеграцию с Qiniu и позволяет автоматически генерировать код и поддерживать разделение чтения и записи базы данных, что сокращает 70% работы и позволяет вам уделять больше внимания написанию бизнес-кода.
Конечно, этот проект также можно использовать для создания демонстрационной страницы для вашей компании, что очень удобно.
Архитектура программного обеспечения
Это веб-приложение, разработанное с использованием Java в качестве серверной части, использующее Spring Boot, MySQL, Druid, MyBatis, PageHelper, JavaMail, Redis, Beetl, Hutool, Layui, Jeesuite и WebMagic для интеграции различных технологий. Оно также поддерживает сканирование и отправку электронной почты. Если вы хотите, чтобы были реализованы какие-либо функции, вы можете создать задачу. Информация о пользователе сохраняется через cookie в течение 30 дней.
Инструкция по установке
- Создайте базу данных CWD_BORING в MySQL.
- Импортируйте SQL из каталога SQL.
- Установите Redis на порт 6379.
Руководство по использованию
- Используйте JDK8.
- MySQL 5.7, имя пользователя и пароль — root и root.
- Конфигурационный файл выглядит следующим образом:
application-dev.yml:
feiqu-redis:
servers: localhost:6379 #redis服务的ip和端口
password:
mail:
default-encoding: utf-8
host: smtp.qq.com #改成你的邮件主机
username: 123@qq.com #邮件服务 登陆用户名
password: 2333 #邮件服务 登陆密码
Необходимо изменить на свои собственные настройки, чтобы они вступили в силу.
- Класс Java:
com.feiqu.framwork.constant.CommonConstant.USER_ID_COOKIE
com.feiqu.framwork.constant.CommonConstant.USER_COOKIE_SECRET
com.feiqu.framwork.constant.CommonConstant.FORGET_PASSWORD_SECRET
Необходимо изменить на собственные настройки, чтобы они вступили в силу.
- ip2region.db -> \feiqu-opensource\feiqu-front\src\main\resources\ip2region\ip2region.db перенести в собственное местоположение файла application-dev.yml:22. Этот файл взят из проекта Lionsoul (https://gitee.com/lionsoul/ip2region). Вы также можете перейти на страницу https://gitee.com/lionsoul/ip2region/blob/master/data/ip2region.db, чтобы загрузить последнюю версию файла, а затем поместить его в соответствующий каталог.
- com.feiqu.framwork.aspectj.DataSourceAspect удалите комментарии для поддержки разделения чтения и записи.
- Настройки Aliyun и Qiniu находятся в файле feiqu-opensource\feiqu-front\src\main\resources\application.properties. Для Qiniu:
public.filesystem.provider=qiniu
public.filesystem.bucketName=***
public.filesystem.urlprefix=***
public.filesystem.accessKey=***
public.filesystem.secretKey=***
picUrl = FileSystemClient.getPublicClient().upload(CommonConstant.FILE_NAME_PREFIX+currentTimeMillis+".jpg", img);
Для Aliyun:
aliyun.filesystem.bucketName=***
aliyun.filesystem.endpoint=***
aliyun.filesystem.accessKey=***
aliyun.filesystem.secretKey=***
aliyun.filesystem.urlprefix=***
Используйте: videoUrl = FileSystemClient.getClient("aliyun").upload("video/"+fileName,localFile);
Измените на свои собственные значения. Обратите внимание на проблемы с междоменными запросами и url_prefix.
- Поддерживаются сторонние логины. В настоящее время интегрированы QQ и Weibo. Интеграция с WeChat требует оплаты, поэтому она не реализована. В файле application.properties:
app_id_qq=***
app_key_qq=***
app_id_sina=***
app_key_sina=***
Измените их на свои собственные. Помните, что необходимо привязать свой домен к https://connect.qq.com/?id=1.
- Нет специального бэкенда, он просто помещён во фронтенд. Измените роль пользователя CWD_Boring.fq_user на 1, чтобы стать администратором. Нажмите на аватар пользователя, чтобы увидеть вкладки слева, где находятся операции администратора.
- Поддержка смены фона после входа в систему (pg: изначально запущенный проект в основном представляет собой пустую страницу).
- Статьи публикуются с поддержкой форматированного текста, используя фреймворк Quill.
- [Изображение] В этом файле application.yml настройте среду разработки и рабочую среду. Каждый раз, когда вы упаковываете, просто переключайте её. Мне кажется, это хорошо.
- Пароли для Redis и MySQL зашифрованы с помощью AES. Инструмент находится в com.feiqu.common.utils.AESUtil, чтобы избежать отображения паролей в открытом виде. Feiqu-system отвечает за взаимодействие с базой данных.
- com.feiqu.framework.init.FeiquInitTrigger и com.feiqu.framework.init.Initialize — это два метода инициализации. Вы можете взглянуть на них.
- Я создал модуль задач по расписанию, основанный на примере ruoyi. SysJobController предоставляет графический интерфейс управления задачами.
- В этом проекте нет бэкенда. Вы можете изменить поле role таблицы fq_user. Если это 1, то это администратор. Вы можете посмотреть эту страницу: templates/common/_user_menu.html. Код бэкенда отличается от открытого исходного кода, но вы можете обратиться к ruoyi, поскольку я использовал его в качестве примера.
- Ошибка в модуле личных сообщений вызвана проблемой group by в MySQL. Вы можете найти решение этой проблемы в Интернете.
- Веб-сайт и открытый исходный код имеют некоторые различия. Пожалуйста, проявите понимание. Полный бизнес-код не предоставляется. Официальный сайт имеет полный бэкенд-проект. Если вам нужно получить его, пожалуйста, свяжитесь с автором в частном порядке. Спасибо.
Комментарии ( 0 )