- 代码结构以及打印信息如图所示
package com.paic.jmstest;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
/**
- 交给spring容器进行管理
- @author Administrator
*/
@Service
public class Demo {
@Async
public void methodA() {
while(true) {
System.out.println("methodA");
try {
Thread.sleep(2000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
@Async
public void methodB() {
while(true) {
System.out.println("methodB");
try {
Thread.sleep(2000);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
package com.paic.jmstest;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableAsync;
/**
- @author Administrator
*/
@Configuration
@ComponentScan(“com.paic.jmstest”)
@EnableAsync/支持异步/
public class SpringConfig {
}
package com.paic.jmstest;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class ThreadMain {
public static void main(String[] args) {
AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfig.class);
Demo demo = ac.getBean(Demo.class);
demo.methodA();
demo.methodB();
}
}
通过打印信息显然可以得出是异步输出,spring对多线程的支持.