2016-06-11 11 views
0

Mein Projekt ist Spring-boot (1.3.5 RELEASE), Webprojekt (Spring-Web 4.3.0 REALESE). Ich möchte den "ApplicationListener" verwenden, wenn der Frühling geladen wurde, etwas zu tun.Aber mein Code funktioniert nicht.Es gibt meinen Code:Kann Spring ApplicationListener nicht verwenden

Paket Hallo;

import org.springframework.context.ApplicationListener; import org.springframework.context.event.ContextRefreshedEvent;

public class BootListener implementiert ApplicationListener {

@Override 
public void onApplicationEvent(ContextRefreshedEvent event) { 
    System.out.println("Spring启动监听器"); 
    System.out.println(event.getTimestamp()); 

} 

}

Paket hallo;

import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication public class Anwendung {

public static void main(String[] args) { 
    SpringApplication.run(Application.class, args); 
} 

}

http://maven.apache.org/xsd/maven-4.0.0.xsd "> 4.0.0

<groupId>org.springframework</groupId> 
<artifactId>demo</artifactId> 
<version>0.1.0</version> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.3.3.RELEASE</version> 
</parent> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
</dependencies> 

<properties> 
    <java.version>1.8</java.version> 
</properties> 


<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

<repositories> 
    <repository> 
     <id>spring-releases</id> 
     <url>https://repo.spring.io/libs-release</url> 
    </repository> 
</repositories> 
<pluginRepositories> 
    <pluginRepository> 
     <id>spring-releases</id> 
     <url>https://repo.spring.io/libs-release</url> 
    </pluginRepository> 
</pluginRepositories> 

+0

Wenn Sie einen Listener verwenden möchten, sollten Sie ihn irgendwo im Frühling hinzufügen, der seine Existenz während des Starts der Spring-Boot-Anwendung erkennt. –

+0

Richtig, ich habe die Klasse als Frühlingsbohne kommentiert. – TungFung

Antwort

1

Sie benötigen t o Machen Sie Ihren Event-Listener zu einem Singleton, damit Spring dies aufgreifen kann. Beschriften Sie Ihre BootListener mit @Component.

Um Ereignisse selbst zu veröffentlichen, injizieren Sie ApplicationEventPublisher.

+0

Richtig! Ich rolle nur die Annotation. – TungFung

Verwandte Themen