Est-il interdit ou pas une bonne pratique de créer des objets en utilisant new. Créer des objets signifie comme des objets Helper pour certaines tâches qui ne sont pas liées à la requête, mais qui sont simplement utilisées pour effectuer des tâches d'arrière-plan telles que lire un fichier local, une base de données, etcUtilisation de nouvelles dans les applications de cadre Spring?
Répondre
- Il est pas interdit
- Ce n'est pas une bonne pratique pour instancier les composants sans état (comme aides), parce que vous créez des instances inutiles
- Tous les grains de printemps « live » dans le contexte de l'application, et il est le celui qui les instancie, pas vous. Donc, si vous voulez pouvoir injecter dépendances dans vos objets, laissez-les être gérés par un ressort, c'est-à-dire ne pas instancier avec
new
. - En règle générale, seuls les objets de valeur (
User
,Address
,AccountInfo
, etc.) sont instanciés par vous (en utilisantnew
) - Il y a une « magie » qui vous permet d'avoir à la fois l'injection de dépendance et instanciation à l'aide
new
. C'est l'annotation@Configurable
. Il utilise des tisseurs AspectJ qui se branchent sur la VM. Mais ce n'est pas quelque chose à considérer jusqu'à ce qu'il n'y ait pas d'alternatives. (la dernière phrase est mon opinion)
manière orientée objet (en minimisant l'impact de l'utilisation d'interfaces ou en ayant le moins de dépendances possible entre les classes). Dans le contexte de l'application, vous créez un environnement statique, ce qui signifie que vous instanciez la structure de l'objet de la façon dont vous en avez besoin dans votre application.
Exemples pour des objets qui sont généralement instanciées dans le contexte du printemps:
- connexions de base de données
- classes de service
- page contrôleurs etc.
Ce sont toutes les ressources statiques qui n » t directement changer pendant le cycle de vie de vos applications (c'est pourquoi vous pouvez les instancier dans un contexte statique).
Si vous n'avez qu'un objet qui obtient toutes ses informations de manière dynamique pendant l'exécution (par exemple, à partir d'une requête Web ou d'un autre fichier), vous ne pouvez pas les instancier dans un contexte Spring. Ne pas oublier que le printemps veut et devrait être aussi discret que possible, alors pourquoi devrait-il être interdit d'utiliser tout ce que vous avez utilisé auparavant?
- 1. Spring auto-formation de cadre
- 2. Gestion des nouvelles fonctionnalités de bibliothèque dans les anciennes applications
- 3. Utilisation de NSException dans les applications iPhone
- 4. Utilisation de WINAPI dans les applications Qt
- 5. Cadre d'application pour les applications de bureau Java?
- 6. Locales dans le cadre de l'URL de Spring MVC
- 7. Cadre publicitaire pour les applications Cocoa (Mac)?
- 8. Utilisation de "pathdir" sur les applications Java
- 9. Simple Spring, utilisation de ClasspathApplicationContext pour les applications autonomes, comment réutiliser?
- 10. Utilisation de SoapActionEndpointMapping dans Spring-ws
- 11. Utilisation du HTML dans les applications Swing
- 12. Utilisation de Spring IDE dans Eclipse 3.4
- 13. Meilleur cadre iPhone/iOS pour les applications de présentation
- 14. Modèle de cadre pour les applications AIR et Android.
- 15. Powershell Utilisation de Backtick pour les nouvelles lignes - étrangeté
- 16. Utilisation de la structure JAVA NIO dans le serveur SPRING
- 17. Motif d'état dans les applications iPhone (utilisation de la mémoire)
- 18. Utilisation de Sinatra dans les applications Small-Medium
- 19. Demande de recommandation d'un cadre: Spring, Struts, Java EE?
- 20. Exemple de mauvaise utilisation de Spring
- 21. Utilisation de Google Web Toolkit pour les applications de bureau comme les applications Web?
- 22. Utilisation correcte de LOG4J dans Spring Framework Via DI
- 23. Utilisation de Tomcat NTLM avec Spring Security
- 24. mettre à jour de nouvelles applications android dans les sites tiers
- 25. Utilisation de spring: message pour définir l'attribut d'étiquette de formulaire dans l'application Web Spring
- 26. Utilisation de dijit.filteringselect dans un environnement Spring MVC
- 27. MySQL: Utilisation de REPLACE dans le cadre d'une instruction IN
- 28. Utilisation de Spring AOP dans une application JSF
- 29. Utilisation des composants AXSLT dans Spring MVC
- 30. Pourquoi les nouvelles options de format printf() n'étaient-elles pas nouvelles (en fonction de la largeur de bit) adoptées dans le cadre de C99?
pourquoi penseriez-vous que c'est interdit? –
Par "interdit", je voulais dire que l'utilisation de ce qui pourrait être dangereux ou trompeur, quelque chose comme l'utilisation de goto. Il est parfaitement valide, mais son utilisation pourrait conduire à des résultats indésirables – Ram