1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/noear-solon

Клонировать/Скачать
V3.0.md 31 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 04:31 ba976c1

1. Частичное изменение плана проекта

Стандарты и возможности:

  • Реорганизовать структуру имён пакетов компонентов, сделать более рациональной //ok (solon.xxx заменить на solon-xxx, старое имя всё ещё можно использовать).
  • Переименовать AopContext в AppContext //ok.
  • Изменить @Component, добавить поддержку автоматического проксирования //ok.
  • Изменять Interceptor, переименовать в MethodInterceptor, чтобы соответствовало RouteInterceptor //ok.

Упрощение:

  • Удалить систему Before и After (унифицировать с системой Filter) // ok (упрощение).
  • Удалить аннотации @Dao, @Service, @Repository, @ProxyComponent (унифицировать с @Component) //ok (упрощение).
  • Убрать неиспользуемый код конфигурации.
  • Упростить быстрые комбинации пакетов (их стало слишком много, что может запутать), оставить только два основных: //ok
    • solon-lib;
    • solon-web.

3. Удаление и замена конфигураций (необходимо тщательно проверить):

  • Удалить: | Тип | Удаляемая конфигурация | Замена конфигурации | |----|-------------------------|---------------------| | Параметры запуска | solon:: - config | config.add | | Свойства приложения | solon:: - solon.config | solon.config.add |

  • Заменить: | Тип | Заменяемая конфигурация | Замена конфигурации | |----|--------------------------|--------------------| | Свойства приложения | solon-boot:: - server.session.state.domain | server.session.cookieDomain | | | - server.session.state.domain.auto | server.session.cookieDomainAuto | | | solon-web-staticfiles:: - solon.staticfiles.maxAge | solon.staticfiles.cacheMaxAge |

4. Удаление и замена событий (необходимо тщательно проверить):

Плагин Удаляемое событие Замена события
solon @Bean bean? getBeanAsync(..class, ..) / @Inject ..
@Component bean? getBeanAsync(..class, ..) / @Inject ..
solon-serialization-fastjson FastjsonActionExecutor getBeanAsync(..class, ..) / @Inject ..
FastjsonRenderFactory getBeanAsync(..class, ..) / @Inject ..
solon-serialization-fastjson2 Fastjson2ActionExecutor getBeanAsync(..class, ..) / @Inject ..
Fastjson2RenderFactory getBeanAsync(..class, ..) / @Inject ..
solon-serialization-fury FuryActionExecutor getBeanAsync(..class, ..) / @Inject ..
solon-serialization-gson GsonActionExecutor getBeanAsync(..class, ..) / @Inject ..
GsonRenderFactory getBeanAsync(..class, ..) / @Inject ..
solon-serialization-hessian HessianActionExecutor getBeanAsync(..class, ..) / @Inject ..
solon-serialization-jackson JacksonActionExecutor getBeanAsync(..class, ..) / @Inject ..
JacksonRenderFactory getBeanAsync(..class, ..) / @Inject ..
solon-serialization-jackson-xml JacksonXmlActionExecutor getBeanAsync(..class, ..) / @Inject ..
JacksonXmlRenderFactory getBeanAsync(..class, ..) / @Inject ..
solon-serialization-properties PropertiesActionExecutor getBeanAsync(..class, ..) / @Inject ..
PropertiesRenderFactory getBeanAsync(..class, ..) / @Inject ..
solon-serialization-protostuff ProtostuffActionExecutor getBeanAsync(..class, ..) / @Inject ..
solon-serialization-snack3 SnackActionExecutor getBeanAsync(..class, ..) / @Inject ..
solon-view-beetl GroupTemplate getBeanAsync(BeetlRender.class, ..) / @Inject ..
solon-view-enjoy Engine getBeanAsync(EnjoyRender.class, ..) / @Inject ..
solon-view-freemarker Configuration getBeanAsync(FreemarkerRender.class, ..) / @Inject ..
solon-view-thymeleaf TemplateEngine getBeanAsync(ThymeleafRender.class, ..) / @Inject ..
solon-view-velocity RuntimeInstance getBeanAsync(VelocityRender.class, ..) / @Inject ..

Пример расширения схемы событий:

@Configuration
public class App {
    public static void main(String[] args) {
        Solon.start(App.class, args, app -> {
            //1. Первый раз вручную получаем (выполняется перед другими инъекциями)
            app.context().getBeanAsync(Xxx.class, e -> {});
        });
    }

    //2. Автоматически внедряется при сканировании
    @Bean
    public void cfg(Xxx xxx) {}
}

Когда лучше использовать расширение событий (по возможности избегать):

  • Когда необходимо расширить функциональность, но неудобно обращаться к объектам в контейнере.

5. Удаление устаревших типов и замена их новыми (компиляция будет выдавать предупреждения)

Плагин Удаляемый тип Заменяющий тип
nami @Body @NamiBody
NamiBodyAnno
@Mapping @NamiMapping
NamiMappingAnno
solon @PathVar @Path
@PropertySource @Import
@ProxyComponent @Component
@Before(Handler) @Addition(Filter)
@After(Handler) @Addition(Filter)
Endpoint /
SolonBuilder /
ValHolder /
InitializingBean @Init
NdMap IgnoreCaseMap
solon-data Serializer core::Serializer
solon-data-dynamicds DynamicDsHolder DynamicDsKey
solon-logging LogUtilToSlf4j /
solon-logging-log4j SolonCloudAppender /
solon-logging-logback SolonCloudAppender /
solon-serialization JsonConverter core::Converter
StringSerializer core::Serializer
solon-test @TestPropertySource @Import
@TestRollback @Rollback
AbstractHttpTester HttpTester
--------------------- ----------------
Нами
- Константы CONTENT_TYPE_*
Соло
- ActionParamResolver resolvePathVar()
- ActionDefault before(.)
после(.) / только filter система
- AppContext beanOnloaded(.)
lifecycle(.) /
- BeanContainer getAttrs()
attachment*(.) beanAround*(.), beanInterceptor*(.)
- ClassUtil newInstance(.)
tryInstance(.)
- ClassWrap getFieldAllWraps()
getFieldWraps()
- ConditionUtil ifMissing(.)
ifMissingBean(.)
- Context ip()
param(key,def) paramOrDefault(key,def)
paramSet(.) paramMap().add(.)
paramsMap() paramMap().toValuesMap()
paramsAdd(.) paramMap().add(.)
files(.) fileValues(.)
filesMap() fileMap().toValuesMap()
cookie(key,def) cookieOrDefault(key,def)
header(key,def) headerOrDefault(key,def)
headersMap() headerMap().toValuesMap()
session(key,def) sessionOrDefault(key,def)
statusSet(.) статус(.)
attr(key,def) attrOrDefault(key,def)
attrClear() attrsClear()
- DateAnalyzer getGlobal() global()
- EventBus pushAsync() publishAsync()
pushTry() publishTry()
push()
- Gateway before(.)
after(.)
- LifecycleBean prestop()
- LogUtil debugAsync()
infoAsync()
- MethodHolder getArounds()
- MethodWrap getArounds()
- MvcFactory resolveParam(.)
- NvMap (map)
getBean(.)
- Props getByParse(.)
getXmap(.)
getBean(.)
- ResourceUtil remClasspath(.)
- Router matchOne(.)
- RunUtil setExecutor(.)
- SolonApp before(.)
after(.)
- SolonProps source()
sourceLocation()
- Utils TAG_classpath
resolvePaths(.)
hasClass(.)
loadClass(.)
newInstance(.)
getResource*(.)
transferTo*(.)
buildExt(.)
solon-boot::
- HttpServerConfigure allowSsl(.)
solon-data::
- CacheService get(key)
solon-scheduling::
- IJobManager setJobInterceptor(.)
solon-serialization-properties::
- PropertiesActionExecutor includeFormUrlencoded(.)

7. Удалите соответствующие таблицы для устаревших плагинов

Мы упростили набор быстрых комбинаций пакетов (слишком много, легко запутаться), оставив только два основных:

Удалённые плагины Заменённые плагины Примечания
:: cloud
solon.cloud.httputils solon-net-httputils
:: detector
detector-solon-plugin solon-health-detector
:: logging
log4j2-solon-plugin solon-logging-log4j2
logback-solon-plugin solon-logging-logback
:: scheduling
solon.extend.schedule /
:: testing
solon.test solon-test
:: web
solon.web.flux solon-web-rx
:: shortcuts
solon-api solon-web
solon-job / Используйте solon-lib +
solon-rpc / Используйте solon-web +
solon-beetl-web / Используйте solon-web +
solon-enjob-web / Используйте solon-web +
solon-web-beetl / Используйте solon-web +
solon-web-enjoy / Используйте solon-web +
solon-cloud-alibaba / Используйте solon-web + solon-cloud +
solon-cloud-water / Используйте solon-web + solon-cloud +

Удалённый набор быстрых пакетов можно комбинировать следующим образом:

  • solon-job =
    • solon-lib + solon-scheduling-simple
  • solon-rpc =
    • solon-web + nami-coder-snack3 + nami-channl-http-okhttp
  • solon-beetl-web (или solon-web-beetl) =
    • solon-web + solon-view-beetl + beetlsql-solon-plugin
  • solon-enjoy-web (или solon-web-enjoy) =
    • solon-web + solon-view-enjoy + activerecord-solon-plugin
  • solon-cloud-alibaba =
    • solon-web + solon-cloud + nacos-solon-cloud-plugin + rocketmq-solon-cloud-plugin + sentinel-solon-cloud-plugin
  • solon-cloud-water =
    • solon-web + solon-cloud + water-solon-cloud-plugin

8. Некоторые имена плагинов были изменены (устаревшие имена помечены как «устарело», но всё ещё могут использоваться).

Новые изменения выполняются в соответствии со следующими правилами именования плагинов:

Правила именования плагинов Описание
solon-* (изменено с solon.*) Плагины внутренней архитектуры
*-solon-plugin (без изменений) Внешние адаптивные плагины
*-solon-cloud-plugin (без изменений) Облачные внешние адаптивные плагины

Соответствующие «устаревшие» имена всё ещё можно использовать. Ожидается, что они будут поддерживаться в течение года или около того. Конкретные изменения следующие:

Новое имя Устаревшее имя Примечание
:: nami
nami-channel-http-hutool nami.channel.http.hutool
--- --- ------------------------------
nami-channel-http-okhttp nami.channel.http.okhttp
nami-channel-socketd nами. канал. сокетд
nami-coder-fastjson nами. кодер. фастджсон
nami-coder-fastjson2 nами. кодер. фастджсон2
nami-coder-fury nами. кодер. фьюри
nami-coder-hessian nами. кодер. гессиан
nami-coder-jackson nами. кодер. джексон
nami-coder-protostuff nами. кодер. протостаф
nami-coder-snack3 nами. кодер. снэк3
:: base
solon-config-banner солонь. баннер
solon-config-yaml солонь. конфиг. ямл
solon-config-plus из исходного солонь. конфиг. ямл выделено
solon-hotplug солонь. хотплаг
solon-i18n солонь. ай восемнадцать н
solon-mvc солонь. эм ви си
solon-proxy солонь. прокси
solon-rx новое
:: boot
solon-boot-jdkhttp солонь. бут. джкхтп
solon-boot-jetty-add-jsp солонь. бут. джетти. адд. джи эс пи
solon-boot-jetty-add-websocket солонь. бут. джетти. адд. вэбсокет
solon-boot-jetty солонь. бут. джетти
solon-boot-jlhttp солонь. бут. джи эл хттп
solon-boot-smarthttp солонь. бут. смарт хттп
solon-boot-socketd солонь. бут. сокет ди
solon-boot-undertow-add-jsp солонь. бут. андер тау. адд. джи эс пи
solon-boot-undertow солонь. бут. андер тау
solon-boot-vertx солонь. бут. вертекс
solon-boot-websocket-netty солонь. бут. вэб сокет нетти
solon-boot-websocket солонь. бут. вэб сокет
solon-boot солонь. бут
:: cloud
solon-cloud-eventplus солонь. клауд. ивент плюс
solon-cloud-gateway солонь. клауд. гейтвей
solon-cloud-metrics солонь. клауд. метрикс
solon-cloud-tracing солонь. клауд. трейсинг
solon-cloud солонь. клауд
:: data
solon-cache-caffeine солонь. кэш. кофеин
solon-cache-jedis солонь. кэш. джедаи
солонка-кэш-редиссон солонка. кэш. редиссон
солонка-кэш-спаймемкачд солонка. кэш. спаймемкачд
солонка-дата-динамикс дс солонка. дата. динамикс дс
солонка-дата-шардинг дс солонка. дата. шардинг дс
солонка-дата солонка. дата
:: детектор
солонка-хеалтх-детектор солонка. хеалтх. детектор
солонка-хеалтх солонка. хеалтх
:: докс
солонка-докс-опенвэй 2 солонка. докс. опенвэй 2
солонка-докс-опенвэй 3
солонка-докс солонка. докс
:: фэйсэс
солонка-фэйсэс-луффи солонка. луффи
:: логинг
солонка-логинг-лог фордж 2 солонка. логинг. лог фордж 2
солонка-логинг-лобэк солонка. логинг. лобэк
солонка-логинг-симпл солонка. логинг. симпл
солонка-логинг солонка. логинг
:: натив
солонка-аот солонка. аот
:: нет
солонка-нет-хттп ютилс солонка. нет. хттп ютилс
солонка-нет-стомп
солонка-нет солонка. нет
:: счедулинг
солонка-счедулинг-кварц солонка. счедулинг. кварц
солонка-счедулинг-симпл солонка. счедулинг. симпл
солонка-счедулинг солонка. счедулинг
:: секьюрити
солонка. авт 弃用
солонка. валидация 弃用
солонка. валт 弃用
солонка-секьюрити-авт солонка. секьюрити. авт
солонка-секьюрити-валидация солонка. секьюрити. валидация
солонка-секьюрити-вальт солонка. секьюрити. вальт
:: сериализатион
солонка-сериализатион солонка. сериализатион
солонка-сериализатион-фаст джсон солонка. сериализатион. фаст джсон
солонка-сериализатион-фаст джсон 2 солонка. сериализатион. фаст джсон 2
солонь-сериализация-гсон солонь.сериализация.гсон
солонь-сериализация-хессиан солонь.сериализация.хессиан
солонь-сериализация-джексон солонь.сериализация.джексон
солонь-сериализация-джексон-иксэм солонь.сериализация.джексон.иксэм
:: вью
солонь-вью солонь.вью
солонь-вью-битл солонь.вью.битл
солонь-вью-энжой солонь.вью.энжой
солонь-вью-фримаркэр солонь.вью.фримаркэр
солонь-вью-джсп солонь.вью.джсп
солонь-вью-джакарта
солонь-вью-таймлиф солонь.вью.таймлиф
солонь-вью-вэлосити солонь.вью.вэлосити
:: веб
солонь-сэшнстэйт-джедис солонь.сэшнстэйт.джедис
солонь-сэшнстэйт-джей ти ви солонь.сэшнстэйт.джей ти ви
солонь-сэшнстэйт-локал солонь.сэшнстэйт.локал
солонь-сэшнстэйт-рэдиссон солонь.сэшнстэйт.рэдиссон
солонь-вэб-корс солонь.вэб.корс
солонь-вэб-эр икс солонь.вэб.эр икс
солонь-вэб-эс ди эл солонь.вэб.эс ди эл
солонь-вэб-сервлет солонь.вэб.сервлет
солонь-вэб-сервлет-джакарта солонь.вэб.сервлет.джакарта
солонь-вэб-эс эс солонь.вэб.эс эс
солонь-вэб-статик файлз солонь.вэб.статик файлз
солонь-вэб-стоп солонь.вэб.стоп
солонь-вэб-ведэй
солонь-вэб-веб дэйв солонь.вэб.ведэй

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/noear-solon.git
git@api.gitlife.ru:oschina-mirror/noear-solon.git
oschina-mirror
noear-solon
noear-solon
main