@ConditionalOnClass
ek açıklaması nasıl çalışır?Spring-boot @ConditionalOnClass nasıl çalışır?
Amacım, belirli bir fasulyeyi yalnızca bu sınıfı sağlayan jar
sınıf yoluna dahil edilmişse yüklemektir.
@ConditionalOnClass(MyService.class)
ile
@Bean
açıklama ve isteğe bağlı olarak maven içinde bağımlılık ilan gerçi: bağımlılık olarak
<dependency>
<groupId>de.my</groupId>
<artifactId>my-framework<artifactId>
<optional>true</optional>
</dependency>
@Bean
@ConditionalOnClass(MyService.class)
public MyConditionalBean statistics() {
return new MyConditionalBean();
}
Artık herkes sahip my-framework
o fasulye otomatik kablolu almalısınız. Ama bağımlılığa sahip olmayan herkes onu atlamalı. Yani muhtemelen yanlış bir şey yapıyorum
Caused by: java.lang.ClassNotFoundException: de.MyService.class
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702) ~[catalina.jar:7.0.50]
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547) ~[catalina.jar:7.0.50]
: Ben app başlattığınızda
Ama aşağıdaki hatayı alıyorum. Daha sonra, bağımlılık kavanozlarına ve sınıf yolunda yer alan sınıflara baklaya nasıl katılabilirim?
bahar Dokümanlar:
/**
* The classes that must be present. Since this annotation parsed by loading class
* bytecode it is safe to specify classes here that may ultimately not be on the
* classpath.
*/
Ama hata farklı devletler ...
En üst düzey bir sınıfa koyarsanız, sınıfın sınıf yükleme süresinde çekilmesi dışında olurdum. Sınıfı kullanırken budur. Bunu bir String literal olarak kullanmak bunu engeller. –