Spring的@Async

,但是有些小地方他又不给你很清楚的说明。

  • 要获得异步,加@Async即可
  • 如果要配置连接池,在applicationContext.xml中加入

注意: 使用连接池的情况下,applicationContext.xml配置文件需要加入命名空间

xmlns:task="http://www.springframework.org/schema/task"

http://www.springframework.org/schema/task

http://www.springframework.org/schema/task/spring-task.xsd

  • 最重要的事情,很多异步无法成的原因如下:

异步方法需要在另外一个service里面才行

如下:

失败的例子:

@Service
public class AsyncTest{

    public void dodd(){
        System.out.println("1");
        doSomeThing();
        System.out.println("3");
    }
    
    @Async
    public void doSomeThing(){
        System.out.println("2");
    }
}

成功的例子:

@Service
public class AsyncTest{

    @Resource
    AsyncIface asysncIface;
    
    public void dodd(){
        System.out.println("1");
        asysncIface.doSomeThing();
        System.out.println("3");
    }
}

你可能感兴趣的:(Spring的@Async)