我使用 spring-roo 来生成我的项目。我不知道这两件事是否相关,但在 Controller 中,@Async 或 @Secure 注释都不起作用。对于@Secure:我<global-method-security secured-annotations="enabled"/>
在 applicationContext-security.xml 中添加了标签并修改了 pom.xml 以满足依赖关系,
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-aspects</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
在控制器中的方法上方,我添加了@Secured("ROLE_ADMIN")
但无论任何角色每个人都可以访问该方法。我错过了什么配置以使@Secure 处于活动状态?
对于@Async:在 applicationContext.xml 中,我添加了
<task:annotation-driven executor="asyncExecutor"/>
<task:executor id="asyncExecutor" pool-size="${executor.poolSize}"/>
在控制器.java 中:
@Async
private void justWait20seconds() {
try {
Thread.sleep(20000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
我希望这个方法不会阻塞 main 方法,但它没有。这2个标签都在我的UserController.java中,不知道有没有关联。任何人都可以帮忙吗?