Аспект применяется к прокси , окружающему компонент. Обратите внимание, что каждый раз, когда вы получаете ссылку на bean-компонент, на самом деле это не класс, на который ссылается ваша конфигурация, а синтетический класс, реализующий соответствующие интерфейсы, делегируя фактический класс и добавляя функциональность, например, ваш AOP.
В приведенном выше примере вы вызываете непосредственно в классе, тогда как если этот экземпляр класса вводится в другой как компонент Spring, он вводится как его прокси-сервер, и, следовательно, вызовы методов будут вызваны на прокси (и аспекты будут активированы)
Если вы хотите достичь вышеизложенного, вы можете разделить method1
/ method2
на отдельные компоненты или использовать структуру AOP, не ориентированную на весы.
Подробное описание Spring doc и несколько обходных решений (включая мое первое предложение выше)
компиляции инструмента Java Packager, пакеты, и готовит Java и приложения JavaFX для распределения. Команда javapackager является версией командной строки.
†“документация Oracle
javapackager
утилита поставлется с JDK. Это может генерировать .exe файлы с эти -native exe
флаг среди многих других вещей.
WinRun4j является средством запуска Java для окон. Это - альтернатива javaw.exe и предоставляет следующие преимущества:
- Использование файл INI для определения пути к классу, основного класса, vm args, программа args.
- Пользовательское исполняемое имя, которое появляется в диспетчере задач.
- Дополнительная JVM args для более гибкого использования памяти.
- Встроенный заменитель значка для пользовательского значка.
- [больше пунктов маркированного списка следует]
†“веб-страница WinRun4J
, WinRun4J является утилитой с открытым исходным кодом. Это имеет многие функции.
Ваш JAR, активы и JVM для распределения в Windows, Linux и Mac OS X, добавляя собственный исполняемый файл, чтобы заставить его появиться как исходное приложение. Packr наиболее подходит для приложений GUI.
†“packr README
packr является другим инструментом с открытым исходным кодом.
JSmooth является Исполнимой Оберткой Java. Это создает собственные средства запуска Windows (стандарт .exe) для Ваших JAVA-приложений. Это делает развертывание Java намного более гладким и удобным для пользователя, поскольку это в состоянии найти любой установленный Java VM отдельно.
†“веб-сайт JSMOOTH
JSmooth является открытым исходным кодом и имеет функции, но это очень старо. Последний выпуск был в 2007.
JexePack является инструментом командной строки (большой для автоматизированных сценариев), который позволяет, Вы для упаковки JAVA-приложения (файлы класса), дополнительно наряду с его ресурсами (как GIF/JPG/TXT/etc), в сингл сжались 32-разрядный Windows EXE, который выполняет среду выполнения Java Sun использования. И консоль и оконные приложения поддерживаются.
†“веб-сайт JexePack
JexePack является пробным программным обеспечением. Оплата требуется для производственного использования, и EXE-файлы, созданные с этим инструментом, отобразят "напоминания" без оплаты. Кроме того, последний выпуск был в 2013.
InstallAnywhere облегчает для разработчиков создавать профессиональное программное обеспечение установки для любой платформы. С InstallAnywhere you’ll адаптируются к промышленным изменениям быстро, доберитесь, чтобы продать быстрее и обеспечить привлекательное качество обслуживания клиентов. И знайте уязвимость своих project’s компонентов OSS перед поставкой.
†“веб-сайт InstallAnywhere
InstallAnywhere является коммерческим пакетом / пакетом предприятия, который генерирует установщики для основанных на Java программ. Это, вероятно, способно к созданию .exe файлы.
Как альтернатива .exe файлам, можно создать файл JAR, который автоматически работает, когда дважды щелкнули, добавление точки входа к декларации .
JAR <час>, превосходный источник информации об этой теме является статьей Excelsior" , Преобразовывают Java в EXE †“Да ведь Когда, Если не и Как ".
См. также сопутствующую статью" Лучший JAR к Инструментам Преобразования EXE, Свободным и Коммерческим ".
Launch4j является межплатформенным инструментом для обертывания JAVA-приложений, распределенных как банки в легких собственных исполняемых файлах Windows. Исполняемый файл может быть настроен, чтобы искать определенную версию JRE или использовать связанную, и возможно установить опции во время выполнения, как начальный/макс. размер "кучи". Обертка также обеспечивает лучший пользовательский опыт через значок приложения, собственный pre-JRE экран-заставку, пользовательское имя процесса и страницу загрузки Java в случае, если соответствующий JRE не может быть найден.
†“веб-сайт Launch4j
ОБНОВЛЕНИЕ: GCJ мертв. Это было , официально удалил из проекта GCC в 2016. Даже перед этим, от этого практически отказались в течение семи лет, и в любом случае это никогда не не было достаточно завершено для служения в качестве жизнеспособной альтернативной реализации Java.
Идут, находят другой Java компилятором AOT.
GCJ: Компилятор GNU для Java может скомпилировать исходный код Java в собственный машинный код, включая исполняемые файлы Windows.
, Хотя не все в Java поддерживается под GCJ, особенно компоненты графического интерфейса пользователя (см. , Какой API Java поддерживается? Насколько завершенный поддержка? вопрос от FAQ). Я не использовал GCJ очень, но от ограниченного тестирования я сделал с консольными приложениями, это кажется прекрасным.
Одна оборотная сторона использования GCJ для создания автономного исполняемого файла - то, что размер получающегося EXE может быть довольно большим. Одно время я скомпилировал тривиальное консольное приложение в GCJ и результате, было исполняемым файлом приблизительно 1 МБ. (Могут быть пути вокруг этого, что я не знаю. Другая опция была бы исполняемыми программами сжатия.)
С точки зрения установщиков с открытым исходным кодом, Система Установки Nullsoft Scriptable является scriptable установщиком. Если Вам любопытно, существует , пользователь внес примеры о том, как обнаружить присутствие JRE и установить его автоматически, если необходимый JRE не установлен. (Только для сообщения я не использовал NSIS прежде.)
для получения дополнительной информации об использовании NSIS для установки JAVA-приложений, смотрите на мой ответ для вопроса" , Что лучший способ состоит в том, чтобы распределить JAVA-приложения? "
По моему скромному мнению JSmooth, кажется, делает довольно хорошее задание.
Мы используем Install4J для создания установщиков для сред Unix или окон.
Это легко настраиваемо до точки, где Вы хотите записать сценарии для специальных действий, которые не могут быть сделаны со стандартными диалогами. Но даже при том, что мы настраиваем сервисы окон с ним, мы только используем стандартные компоненты.
, я думаю, что Launch4J от той же компании (просто средство запуска - никакой установщик).
пз: печально я не становлюсь оплаченным это подтверждение. Я точно так же, как тот инструмент.
Последняя версия Java Web Start была улучшена, чтобы обеспечить хорошую автономную работу, а также разрешить «локальную установку». На это стоит обратить внимание.
РЕДАКТИРОВАТЬ 2018: Java Web Start больше не входит в комплект новейших JDK. Oracle стремится к "
Если вам нужно преобразовать все приложение в собственный код, то есть EXE плюс библиотеки DLL, существует ExcelsiorJET . Я обнаружил, что он работает хорошо, и предоставил альтернативу объединению JRE.
В качестве альтернативы можно использовать какой-нибудь транслятор java-to-c (например, JCGO) и скомпилировать созданные файлы C в родной двоичный файл (.exe) для целевой платформы.