Erhalten bean @Service annotiert Klasse?
In meinem web-Anwendung, ich bin nicht mit applicationContext.xml
. Wie kann ich die Bohne von @Service
annotierten Klasse?
Wenn ich die applicationContext.xml
in meinem web-Anwendung, ich habe zum laden der applicationContext.xml
jeder Zeit, um die Bohnen der @Service
annotierten Klasse.
Habe ich diese Art
WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext);
ServerConnection con = (ServerConnection ) ctx.getBean("con");
Mein Service-Klasse wird als ,
@Service or @Service("con")
public class ServerConnection {
private TServerProtocol tServerProtocol;
private URI uri;
public TServerProtocol getServerConnection(){
System.out.println("host :"+host+"\nport :"+port);
try {
uri = new URI("tcp://" + host + ":" + port);
} catch (URISyntaxException e) {
System.out.println("Exception in xreating URI Path");
}
tServerProtocol = new TServerProtocol(new Endpoint(uri));
return tServerProtocol;
}
}
Ist es anderen Weg, um eine Bohne dieser Klasse ?
oder
Was ist der richtige Weg, um eine Bohne von @Service
annotierten Klasse im Falle der core-Anwendung und web-Anwendung in Spring3.x?
InformationsquelleAutor Human Being | 2013-04-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie annotation-basierte Konfiguration, die Sie verwenden
@Autowired
um die bean durch seine Art oder@Resource
um die bean durch seinen Namen. Verwenden Sie nur eine dieser für eine bestimmte Eigenschaft (halten die Verwirrung nach unten).Es gibt auch
@Inject
, aber ich mag das nicht, es wird weniger schön, als die Anzahl der Bohnen geht. YMMV.InformationsquelleAutor Donal Fellows
ApplicationContext context=SpringApplication.run(YourProjectApplication.class, args);
diesem Zusammenhang kann verwendet werden, um die Bohnen erstellt von annotation
@Bean
und@Service
als
context.getBean(className.class);
InformationsquelleAutor manoj jangam
Da Sie die Nutzung von Anmerkungen, ich glaube, Sie würde lieber @Autowired. Wenn Sie eine Klasse haben, rufen
ServerConnection
(sagen wirCallingClass
unter Paketcom.foo
), dann ist dies wie es Aussehen würde:Dann auf Ihre applicationContext.xml fügen Sie einfach die folgenden
Hoffe, dass ich Ihre Frage beantwortet.
Abgesehen von diesem und was Sie oben erwähnt haben, ich glaube, es gibt keinen anderen Weg, das ist, wenn Sie wollen, zu nutzen, Spring DI.
InformationsquelleAutor cRx
Wenn Sie die Arbeit in einigen bean außerhalb Frühjahr können Sie dann normal Frühjahr Anmerkungen:
dann rufen Sie eine Zeit von innerhalb dieser Klasse:
injizieren Sie alle Abhängigkeiten. Es wäre praktisch, wenn Sie mehrere Abhängigkeiten.
Sharma bitte posten Sie Ihr problem als eine separate Frage
InformationsquelleAutor Maksym Demidas