|
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 29
|
|
J2SE + Spring beans + Proguard30.11.2016, 11:16. Показов 1336. Ответов 11
Добрый день.
Делаю веб-приложение, оно включает в себя Jetty embedded, Vaadin, Spring. Использую Intellij IDEA. Конфиги Spring-бинов вынесены в папку cfg/ . Классы (которые Spring-beans) в коде никак не отмечены, что они бины. Они становятся бинами в момент загрузки объекта контекста Spring. Т.е. Proguard не знает, что эти классы связаны с XML-конфигами и весело меняет их имена, после чего приложение уже не может стартовать (контекст Spring не находит классы бинов). Нужно обфусцировать собранный JAR-файл, перед выдачей клиентам. Хотя, собственно, не ясно - нужно ли в самом деле... Итак, вопросы: 1. Есть ли реальная польза от обфускации JAR-файлов? 2. Как можно указать Proguard-у, чтобы он не трогал некоторые классы? Вручную понятно как, а вот как максимально автоматизировать этот вопрос?
0
|
|
| 30.11.2016, 11:16 | |
|
Ответы с готовыми решениями:
11
Java+Spring beans
|
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 30.11.2016, 12:38 | ||
|
lanmaster2, не используйте xml конфигурацию. Используйте аннотацию @Configuration. Таким образом бины будут подниматься нормально.
используйте Spring Boot. Это сэкономит много времени на ненужные конфиги.
0
|
||
|
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 29
|
|||
| 30.11.2016, 13:06 [ТС] | |||
|
В процессе ковыряния в обфускаторе пока нашел такой способ: добавил в classpath своего проекта пакет из примеров/аннотаций Proguard (examples\annotations\src\proguard\annot ation\) и добавляю аннотации к тем классам, которые требуется исключить из обработки (у меня это Spring-бины). К примеру аннотация @Keep. В конфиге Proguard добавляю строки:
0
|
|||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
||
| 30.11.2016, 13:12 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 29
|
|||
| 30.11.2016, 13:55 [ТС] | |||
|
Добавлено через 15 минут http://proguard.sourceforge.ne... #annotated
0
|
|||
|
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
|
|
| 30.11.2016, 18:38 | |
|
lanmaster2, если нигде не используется инжектирование по имени, то стоит в конфиге (@Configuration) вообще указать только пакет сканирования и аннотировать классы с помощью @Component
0
|
|
|
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 29
|
||
| 01.12.2016, 10:55 [ТС] | ||
|
Сейчас у меня в XML прописаны в том числе бины, которые по сути ресурсные... Это классы, запускающиеся в отдельных потоках и нужные для работы с транзакциями базы данных. Т.е. каждый такой поток - это по сути обработчик подключений/транзакций, с обработкой простых и prepared-стэйтментов, с блокировками доступа к потоку - желающие получить доступ к базе - встают в очередь... Вот в своем XML-е я создал несколько таких бинов и подключаю их в другие бины-потребители. И в любой момент могу прописать еще бины-коннекторы и назначить их в бины-потребители, чтобы снизить время блокировок базы данных. Как такую схему перевести в @Configuration ? Добавлено через 52 секунды И таки да - я не использую Hibernate. Пока нет необходимости... Добавлено через 3 минуты Приходится работать с готовыми базами, в которых зачастую даже индексы и PK не везде есть в таблицах. Поэтому такая породистая штука, как Hibernate - там вряд ли проедет. Зато есть самописный класс, который реализует все что нужно.
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 01.12.2016, 12:37 | |
|
lanmaster2, любой класс можно сделать бином через аннотацию @Bean в @Configuration
0
|
|
|
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 29
|
||
| 01.12.2016, 12:58 [ТС] | ||
|
0
|
||
|
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
|
|
| 01.12.2016, 14:12 | |
|
lanmaster2, можно вынести в переменные окружения, внешние конфиги. Куда угодно
0
|
|
|
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
|
||
| 01.12.2016, 14:24 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 17.09.2015
Сообщений: 29
|
|
| 01.12.2016, 14:32 [ТС] | |
|
0
|
|
| 01.12.2016, 14:32 | |
|
Помогаю со студенческими работами здесь
12
Вывод на экран списка имен файлов в каталоге модуля с использованием Spring beans Groovy для инициализации java beans в spring boot proguard
ProGuard ошибки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|