一、Bootstrap上下文
代码说明
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
/**
* Spring 事件/监听器 Demo
*
* @创建人 steffens
* @创建时间 2019/6/24
* @描述 文件创建
*/
public class SpringEventListenerDemo {
public static void main(String[] args) {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext();
//增加监听器
context.addApplicationListener( new MyApplicationListener() );
//上下文启动
context.refresh();
//发布事件
context.publishEvent( new MyApplicationEvent( "Hello World1~~"));
context.publishEvent( new MyApplicationEvent( "Hello World2~~"));
context.publishEvent( new MyApplicationEvent( "Hello World3~~"));
}
private static class MyApplicationListener implements ApplicationListener<MyApplicationEvent>{
@Override
public void onApplicationEvent(MyApplicationEvent event) {
System.out.printf("MyApplicationListener receive, event : %s \n", event.getSource());
}
}
private static class MyApplicationEvent extends ApplicationEvent {
/**
* Create a new ApplicationEvent.
*
* @param source the object on which the event initially occurred (never {@code null})
*/
public MyApplicationEvent(Object source) {
super(source);
}
}
}
二、 应用启动SpringApplication.run
例如args和程序参数
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringCloudLesson1Application {
public static void main(String[] args) {
SpringApplication.run(SpringCloudLesson1Application.class, args);
}
}
三、修改成非web程序,注意启动注解 ( AnnotationConfigApplicationContext )
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringCloudLesson1Application {
public static void main(String[] args) {
//SpringApplication.run(SpringCloudLesson1Application.class, args);
//方式二
SpringApplication springApplication = new SpringApplication(SpringCloudLesson1Application.class);
//修改成非web程序
springApplication.setWebEnvironment(false);
springApplication.run(args);
}
}