私は現在、私のプロジェクトに春のセキュリティを使用しています。 (覚え-私を機能するためのユーザー)このBeanを追加した後:なぜ突然春が私にアスペクトを求めているのですか?
<b:bean id="jdbcTokenRepository" class="org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl">
<b:property name="createTableOnStartup" value="false"/>
<b:property name="dataSource" ref="dataSource"/>
</b:bean>
ユーザートークンがまだ保存されませんでした。 「dataSource」がautoCommit = falseに設定されているため、すべてです。
(私は1つの以上のクラスを作成する必要がありましたが、それは働いていたので、本当に醜い)だから私がした最初のものだった:
import org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl;
import org.springframework.transaction.annotation.Transactional;
@Transactional
public class TransactionalJdbcTokenRepositoryImpl extends JdbcTokenRepositoryImpl {}
だから、私のためのより良い解決策は以下ました:
<b:bean id="jdbcTokenRepository"
class="org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl">
<b:property name="createTableOnStartup" value="false"/>
<b:property name="dataSource" ref="dataSource"/>
</b:bean>
<tx:advice id="tokenRepoAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config proxy-target-class="false" expose-proxy="false">
<aop:advisor id="tokenRepoAdvisor"
advice-ref="tokenRepoAdvice"
pointcut="bean(jdbcTokenRepository)"/>
</aop:config>
純粋なXML不要なクラス:
しかし、何らかの理由で春にはaspectjが必要になります!
Caused by: java.lang.ClassNotFoundException: org.aspectj.weaver.reflect.ReflectionWorld$ReflectionWorldException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
... 68 more
なぜですか?この設定がなければ、私のDAO層は@Transactionalアノテーションだけでうまくいきました。 aspectjライブラリの追加を避けるにはどうしたらxmlの設定を保持するのですか?
理由AspectJの' 'を使用していたためにPointcutがAspectJで解析されました。 –