Was ich will ist, um Frühling Autowire ein Logger zu machen. Also, mit anderen Worten, ich mag diese Funktion haben:Wie injiziere ich einen Logger in ein Feld in der Beispiel-Spring-Boot-Anwendung?
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class MainController {
@Autowired
private Logger logger;
@RequestMapping("/")
public String enterSite(HttpServletResponse response) {
logger.info("site entered");
return "welcome";
}
}
Gerade jetzt wirft es eine Ausnahme beim Start: „Keine Warte Bean vom Typ [org.slf4j.Logger] für Abhängigkeit gefunden ...“.
Meine pom.xml Abhängigkeiten:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.2.0.M1</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901.jdbc4</version>
</dependency>
<!-- <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId>
</dependency> -->
</dependencies>
Ich lese diese
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-logging
Es sagt, wenn Sie eine der Starter Poms verwenden (i do) Logback verwendet wird - aber für die interne protokollieren. Kann es in meinen Klassen autowired werden?
Wenn wir den Logger über Bean erstellen, ist er in den Endpunkten des Aktor-Loggers nicht verfügbar. Also kann ich die Logger-Laufzeit nicht konfigurieren. Gibt es eine Möglichkeit, dass es in den Endpunkten des Aktor-Loggers verfügbar sein wird? – Nitul