Kann ich Java gemeinsame Annotation wie javax.annotation.Resource
, javax.annotation.PreDestroy
, javax.annotation.security.RolesAllowed
in einer Servlet
Klasse verwenden?können wir gemeinsame javax.annotation's in meiner Servlet Klasse verwenden
Antwort
Technisch gesehen hält Sie nichts davon ab. Sie können diese (gut, so ziemlich jede andere) Annotation in jeder beliebigen Klasse verwenden. Natürlich, wenn die Annotation auf diesen Typ von Java-Element angewendet werden kann (Methode, Feld, Klasse). Die Anmerkungen selbst bringen keine Logik oder Magie in Ihren Code. Überprüfen Sie the source selbst: Sie werden sehen, dass die meisten von ihnen nichts als Dateninhaber sind.
Anmerkungen sind nichts ohne Prozessoren. Die Verarbeitung kann unter Kompilierzeit oder in einer Laufzeit erfolgen.
Kompilierzeit Annotationsverarbeitung kann den Quellcode ändern (vereinfacht hier die Dinge), bevor es kompiliert wird. Es kann zusätzliches Verhalten einführen (wie Nullprüfungen) oder Methoden generieren (wie Lombok's @Getter
/@Setter
. Kompilierzeit Annotation werden normalerweise nach der Verarbeitung entfernt, sie sind nicht auf einer Laufzeit vorhanden.
Die Anmerkungen, die Sie über verschiedene Art sind - Laufzeitannotationen Offensichtlich können Ressourceninjektions- oder Rollenüberprüfungen nicht zur Kompilierungszeit durchgeführt werden.So benötigen sie einen Prozessor, der ebenfalls wirksam sein muss, aber dieser Prozessormuss in einem Klassenpfad einer laufenden Anwendung vorhanden sein.In der Regel werden solche Prozessoren bereitgestellt von einer Umgebung Sie laufen Ihre Anwendung in. In Ihrem Fall sind diese Java EE-Annotation und sie erfordern Java EE kompatibel Anwendungsserver zu arbeiten. Dh die Magie wird nur passieren, wenn Sie Ihre Klasse in einem konfigurierten Anwendungsserver ausführen, wie Glassfish oder WebSpere. Wenn Sie Ihre Anwendung in Tomcat oder Jetty ausführen (sie sind Webserver) - die Annotation wird nicht funktionieren, sie werden "weggelassen", weil keine Prozessoren vorhanden sind, um sie zu verarbeiten.
Vielen Dank für die Erklärung über Anmerkungen in Kürze – manoj
- 1. Können wir NSFileManager in iphone verwenden?
- 2. Können wir & in URL verwenden?
- 3. Können wir HTTPServlet in Main-Methode ausführen Java-Klasse
- 4. Können wir die MailMessage-API in der Klasse "Mailable" verwenden?
- 5. Wie verwende ich Gemeinsame Einstellungen in meiner Klasse
- 6. Können wir Regex in Symfony2 Zugriffskontrolle verwenden?
- 7. Können wir Xpath mit BeautifulSoup verwenden?
- 8. Puppenspieler: Können wir Audio verwenden?
- 9. Können wir document.getElementById() dynamisch verwenden
- 10. Warum verwenden wir pthread_exit(), wenn wir return verwenden können?
- 11. Können wir ein Servlet ohne <servlet-mapping> in web.xml Eintrag
- 12. Können wir Integer-Zeiger in Befehlszeilenargumenten verwenden
- 13. Können wir log4j in mapreduce verwenden?
- 14. Können wir Core-PHP in Codeigniter verwenden?
- 15. Können wir den Vererbungsinhalt in Sitecore verwenden?
- 16. Können wir verwenden? Operator in sql
- 17. Können wir Xamarin.android Code in Xamarin.ios verwenden?
- 18. Können wir Haselnuss in ASP.Net Anwendung verwenden?
- 19. Können wir 'else unless' in Ruby verwenden?
- 20. Können wir Rest API in ASP.Net verwenden?
- 21. Können wir Lombok in Embedded Java verwenden?
- 22. Können wir Firebase mit Amazon DynamoDB verwenden?
- 23. Wie können wir Paket-private Klasse testen?
- 24. Können wir die ES6-Klasse löschen?
- 25. können wir eine Klasse ohne irgendeinen member
- 26. Können wir Abstract Class in Selenium WebDriver verwenden?
- 27. Wo können wir ElasticSearch verwenden und wo können wir MongoDB verwenden?
- 28. Wie „mit“ in meiner Klasse Connection verwenden
- 29. Können wir eine generische HystrixCommand-Unterklasse haben, von der aus wir verschiedene Abhängigkeiten aufrufen können?
- 30. Können wir Helper im Controller Laravel verwenden?
Erklärung mit mehr Details und mit Code – wthamira