Chinaunix首页 | 论坛 | 博客
  • 博客访问: 604921
  • 博文数量: 298
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3077
  • 用 户 组: 普通用户
  • 注册时间: 2019-06-17 10:57
文章分类

全部博文(298)

文章存档

2022年(96)

2021年(201)

2019年(1)

我的朋友

分类: Java

2021-05-30 16:44:26

1、实现ServletContextAware接口并重写其setServletContext方法

点击(此处)折叠或打开

  1. @Component
  2. public class TestStarted implements
  3.   ServletContextAware {
  4.    /**
  5.      * 在填充普通bean属性之后但在初始化之前调用
  6.      * 类似于initializingbean的afterpropertiesset或自定义init方法的回调
  7.      *
  8.      */
  9.   @Override
  10.   public void setServletContext(ServletContext servletContext) {
  11.         System.out.println("setServletContext方法");
  12.     }
  13. }

注意:该方法会在填充完普通Bean的属性,但是还没有进行Bean的初始化之前执行

2、实现ServletContextListener接口

点击(此处)折叠或打开

  1. /**java项目www fhadmin org
  2.  * 在初始化Web应用程序中的任何过滤器或servlet之前,将通知所有servletContextListener上下文初始化。
  3.  */
  4. @Override
  5.  public void contextInitialized(ServletContextEvent sce) {
  6. //ServletContext servletContext = sce.getServletContext();
  7. System.out.println("执行contextInitialized方法");
  8. }

3、将要执行的方法所在的类交个spring容器扫描(@Component),并且在要执行的方法上添加@PostConstruct注解或者静态代码块执行

点击(此处)折叠或打开

  1. @Component
  2. public class Test2 { //静态代码块会在依赖注入后自动执行,并优先执行
  3.    static{
  4.         System.out.println("---static--");
  5.     }
  6.     /**
  7.      * @Postcontruct’在依赖注入完成后自动调用
  8.      */ @PostConstruct public static void haha(){
  9.         System.out.println("@Postcontruct’在依赖注入完成后自动调用");
  10.     }
  11. }

4、实现ApplicationRunner接口

点击(此处)折叠或打开

  1. /**
  2.  * 用于指示bean包含在SpringApplication中时应运行的接口。可以定义多个applicationrunner bean
  3.  * 在同一应用程序上下文中,可以使用有序接口或@order注释对其进行排序。 java项目www fhadmin org
  4.  */
  5. @Override
  6. public void run(ApplicationArguments args) throws Exception {
  7.     System.out.println("ApplicationRunner的run方法");
  8. }

5、实现CommandLineRunner接口

点击(此处)折叠或打开

  1. /**
  2.  * 用于指示bean包含在SpringApplication中时应运行的接口。可以在同一应用程序上下文中定义多个commandlinerunner bean,并且可以使用有序接口或@order注释对其进行排序。
  3.  * 如果需要访问applicationArguments而不是原始字符串数组,请考虑使用applicationrunner。
  4.  * java项目www fhadmin org
  5.  */
  6.  @Override
  7. public void run(String... ) throws Exception {
  8.     System.out.println("CommandLineRunner的run方法");
  9. }

 



阅读(1216) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~