Я начинаю использовать Spring AOP для проекта, и я немного смущен насчет плетения. Я знаю, что Spring AOP имеет зависимость от AspectJweaver.jar, но, как говорится в документации, это не для ткачества, а просто для того, чтобы использовать некоторые из классов из этой банки.Содержит ли Spring AOP компиляцию или ткачество во времени?
Но мой вопрос: если он не использует AspectJ для плетения, имеет ли Spring AOP собственное плетение и выполняется ли оно во время загрузки или времени компиляции?
Соответствующая часть моего файла XML конфигурации Spring является:
<context:annotation-config />
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="get*" read-only="true" />
<tx:method name="*" />
</tx:attributes>
</tx:advice>
<aop:config>
<aop:pointcut id="myaop" expression="execution(* my.package.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="myaop" />
</aop:config>
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
Честно говоря, я понял это сейчас, но рад услышать ответы на подтверждение. Spring тоже не работает, он использует прокси, которые будут созданы во время выполнения. Звучит ли это правильно? – DaveJohnston