小编Esp*_*pen的帖子

具有带注释参数的切入点匹配方法

在以下情况下,我需要使用与方法匹配的切入点创建方面:

  • 是公开的
  • 它的类用@Controller注释 (最后没有)
  • 其中一个参数(可以有很多)使用@MyParamAnnotation进行注释.

我认为前两个条件很简单,但我不知道是否有可能用Spring完成第三个条件.如果不是,也许我可以将其改为:

  • 其中一个参数是com.me.MyType类型的实例(或实现一些接口)

你认为有可能实现这个目标吗?性能会好吗?

谢谢

编辑:匹配方法的一个例子.如您所见,MyMethod没有注释(但它可以).

@Controller
public class MyClass {
    public void MyMethod (String arg0, @MyParamAnnotation Object arg1, Long arg3) {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:我最终使用的解决方案,基于@Espen答案.正如你所看到的,我改变了我的条件:class实际上并不需要成为@Controller.

@Around("execution(public * * (.., @SessionInject (*), ..))")
public void methodAround(JoinPoint joinPoint) throws Exception {
    ...
}
Run Code Online (Sandbox Code Playgroud)

java aop spring annotations aspectj

17
推荐指数
1
解决办法
6693
查看次数

如果提供了WSDL,则使用Spring的Web服务消耗示例

嗨我是Spring WebServices的新手.我想通过一个标准示例,其中WSDL作为Provider的输入提供.现在,这个WSDL的客户端代码将如何呈现.我们需要在客户端生成存根代码吗?

spring spring-ws

8
推荐指数
1
解决办法
3万
查看次数

对JPA + Hibernate + @Transactional注释的Spring事务支持的奇怪befaviour

我发现,在相对简单的例子真是奇怪的行为,可能是我无法理解,因为春天@Transactional自然不深的知识,但是这是很有趣的.

我有简单的User dao,它扩展了spring JpaDaoSupport类并包含标准的save方法:

@Transactional
public User save(User user) {
    getJpaTemplate().persist(user);
    return user;
}
Run Code Online (Sandbox Code Playgroud)

如果工作正常,直到我已经添加新的方法,以同一类:用户getSuperUser(),这个方法应该isAdmin返回用户== true,并且如果在数据库没有超级用户,此方法应该创建一个.那是它的样子:

 public User createSuperUser() {
    User admin = null;

    try {
        admin = (User) getJpaTemplate().execute(new JpaCallback() {
            public Object doInJpa(EntityManager em) throws PersistenceException {
                return em.createQuery("select u from UserImpl u where u.admin = true").getSingleResult();
            }
        });
    } catch (EmptyResultDataAccessException ex) {
        User admin = new User('login', 'password');
        admin.setAdmin(true);
        save(admin); // THIS IS THE POINT WHERE STRANGE THING COMING OUT
    }

    return admin;
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的代码是奇怪向前时发现,没有交易被创建,并承诺在保存(管理)方法的调用,并没有新的用户实际上并没有,尽管@Transactional注解创建我感到很困惑.

在结果,我们有情况:当save()方法从UserDAO的类之外调用 …

java aop spring hibernate jpa

8
推荐指数
2
解决办法
2503
查看次数

如何在不编写并发逻辑的情况下使用Spring返回Future对象?

如何返回java.util.concurrent.Future带有Receipt对象的对象并仅使用@javax.ejb.Asynchronous注释?

我需要任何额外的配置让Spring处理ejb注释吗?

我不想自己编写任何并发逻辑.

这是我的尝试不起作用:

@Asynchronous
public Future<Receipt> execute(Job job) {
    Receipt receipt = timeConsumingWork(job);
    return receipt;
}
Run Code Online (Sandbox Code Playgroud)

java concurrency spring java-ee-6

4
推荐指数
1
解决办法
3481
查看次数

Spring 3 Annotations

我根本无法获得弹簧注释,我只是想让最简单的工作......

.../mycontext/something - >调用方法:

@RequestMapping(value = "/something")
@ResponseBody
public String helloWorld() {
    System.out.println("hello world");
    return "Hello World";
}
Run Code Online (Sandbox Code Playgroud)

我的主要问题是无论我怎么努力,我找不到所需的配置文件的完整SIMPLE示例,每个春季教程都充满了垃圾,我只是一个控制器来处理带有映射的请求而不能让它工作

有没有人知道一个简单而完整的春天例子.宠物诊所是不好的,它太复杂了,我有一个很小的基本用例,它被证明是一个真正的痛苦工作(这总是发生在春天)

java spring annotations spring-mvc

4
推荐指数
1
解决办法
2170
查看次数