2013-05-09 3 views
1

Я хочу иметь pointcut + совет для метода JDK System.currentTimeMillis(), чтобы вернуть настроенное значение для метки времени. Я хотел бы знать, возможно ли это в Spring Framework.Применение AOP для классов JDK

+1

Я знаю, что этот старый, но все еще указан как неотвеченный. Не могли бы вы согласиться и перенести мой ответ, если это будет уместно? Благодарю. – kriegaex

ответ

2

№ Для этого вам необходимо использовать JDK с помощью AspectJ и создать свою собственную пользовательскую версию JDK. Spring AOP может использовать только прокси-сервер Spring. Альтернативные подходы через java.lang.instrument и инструменты, такие как BCEL или ASM, также могут работать.

КПП: Я почти на 90% уверен, что есть более простой способ достичь желаемого. Можете ли вы объяснить, почему вы хотите фальсифицировать результаты системной функции?

+0

Просто мне нужно просто изменить время тестирования для моего приложения, которое запускается на сервере приложений JBOSS. Я пробовал подход, описанный в этой ссылке (ttp: //virgo47.wordpress.com/2012/06/22/changing-system-time-in-java/ t), но он меняет время всей JVM, поэтому даже сервер приложений запутался. Мне нужно только изменить время в приложении. Поэтому я пробовал метод фабрики даты, но сторонние библиотеки, используемые в приложении, могли использовать время, предоставленное JDK напрямую. Вот почему я пришел к этой проблеме АОП. Любая помощь высоко оценивается – user2307172

Смежные вопросы