wegen der Sicherheit ein AppConfig.java
ohne Annotation-Scannen und mit und ohne Konfiguration über eine app-config.xml
wegen schwerer Bindung, ich schaffe Instanzen feder Bohnen wie folgt aus:AppConfig.java Bean mit privatem Konstruktor zurückgeben?
@Configuration
public class AppConfig {
@Bean
public AddressService addressService(){
return new AddressService();
}
}
Alles funktioniert gut, aber was ist, wenn Ich mag um zu verhindern, dass andere eine Instanz von AddressService
erstellen? Normalerweise würde ich den Konstruktor als privat deklarieren, aber der Compiler gibt mir einen Fehler, dass ich nicht mehr auf den privaten Konstruktor von AddressService
im AppConfig
zugreifen kann!
Der Vollständigkeit halber ist dies die AddressService
:
public final class AddressService {
private AddressService(){}
}
Warum die Schnittstelle? Warum deklarieren Sie das Konstruktorpaket nicht - privat? –
Eigentlich, was ändert es? Das OP kann den Annotation-Scan nicht verwenden. Also muss er noch "new AddressingService" machen können, was bedeutet, dass der Konstruktor auch für andere sichtbar ist? – alexbt
@Alex Der Konstruktor wäre im selben Paket sichtbar, er sagte 'package-private' was ist' default' oder 'protected'. –