@Transitoire annotation @org.springframework.les données.annotation.Transitoire d'annotation, transitoire mot-clé et le mot de passe de stockage de

Actuellement, je suis en train d'apprendre le framework Spring, se concentrant principalement sur le Module de Sécurité. J'ai regardé quelques guides dans le cadre de l'enregistrement et de connexion. J'ai vu cette utilisation courante de transitoire mot-clé ou @Transitoire annotation sur le champ de mot de passe dans le Utilisateur classe.

Mon mannequin application utilise le Printemps de Démarrage + Spring MVC + Ressort + MySQL.

Je sais que

De Java transitoire mot-clé est utilisé pour indiquer qu'un champ est de ne pas être sérialisé.

JPA est @Transitoire annotation...

...indique que la propriété ou champ n'est pas persistant. Il est utilisé pour annoter un bien ou d'un champ d'une classe d'entité, tracé de la superclasse, ou intégrable classe.

et de l'org.springframework.les données.annotation du @Transitoire annotation...

Marque un champ transitoire pour le framework de mapping. Ainsi, le propriété ne sera pas persisté, et ne pas être inspectés par le framework de mapping.

Dans ma base MySQL, j'ai mon spring_demo schéma qui dispose de 3 tables:

+-----------------------+
| Tables_in_spring_demo |
+-----------------------+
| role                  |
| user                  |
| user_role             |
+-----------------------+

Quand je suis en utilisant le transitoire mot clé sur le champ de mot de passe int l'Utilisateur de la classe, il ne serait pas stocké dans la base MySQL. (exemple: test01)

mysql> select * from user;
+----+--------+------------------+----------+
| id | active | email            | username |
+----+--------+------------------+----------+
|  1 |      1 | test01@gmail.com | test01   |
+----+--------+------------------+----------+
1 row in set (0,00 sec)

Quand je suis en utilisant le javax.la persistance @Transitoire annotation sur le champ de mot de passe de l'Utilisateur de la classe, il ne sera également pas stockées dans la base MySQL. (exemple: test02)

Mais... quand je suis à l'aide de la org.springframework.les données.l'annotation @Transitoire annotation sur le champ de mot de passe de l'Utilisateur de la classe, il ne stockées dans les bases de données MySQL. (exemple: test03) Pourquoi est-ce?

mysql> select * from user;
+----+--------+------------------+----------+--------------------------------------------------------------+
| id | active | email            | username | password                                                     |
+----+--------+------------------+----------+--------------------------------------------------------------+
|  1 |      1 | test02@gmail.com | test02   |                                                              |
|  2 |      1 | test03@gmail.com | test03   | $2a$10$UbvmdhfcKxSNr/I4CjOLtOkKGX/j4/xQfFrv3FizxwEVk6D9sAoO  |
+----+--------+------------------+----------+--------------------------------------------------------------+
2 rows in set (0,00 sec)

Mes principales questions sont les suivantes, lorsque je suis en utilisant le printemps.les données en fonction @Transitoire annotation le champ mot de passe a persisté. Pourquoi? Et pourquoi devrais-je utiliser n'importe @Transitoire annotation sur un champ de mot de passe?

Je vous remercie pour vos conseils et votre aide à l'avance!

OriginalL'auteur F3R1 | 2017-03-12