Maison  >  Article  >  Java  >  Exemple d'analyse des opérations de lecture et d'écriture dans Java Spring

Exemple d'analyse des opérations de lecture et d'écriture dans Java Spring

PHPz
PHPzavant
2023-05-07 13:31:16657parcourir

    Stockage des objets bean

    Lorsque nous stockions des objets bean auparavant, nous devions ajouter une ligne de beans dans le fichier de configuration pour les injecter

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Cette méthode d'injection n'est pas bonne S'il y a une erreur dans. le fichier de configuration, le programme est Aucun message d'erreur ne sera affiché. C'est très hostile aux débutants.

    1. Créez un projet

    Créer une classe de démarrage et une méthode principale创建启动类和main方法

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    引入依赖

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    <dependencies>
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    </dependencies>

    创建配置文件

    我们约定好创建的bean对象放在com.bean包下:

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    <dependencies>
       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    </dependencies>

    2.添加注解将bean存入到容器中

    使用Spring的核心就是使用注解,我们学习的注解有5个

    @Controller 【控制器】@Service 【服务】@Repository 【仓库】@Configuration 【配置/布局】@Component 【组件】 2.1 controller

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    我们之前能够通过传入id参数来获取对象,但那是加了一行bean手动加入的id,但现在我们使用了注解,难道就只能使用类类型来获取吗?

    我们使用注解注入bean对象时,id其实默认是类名的小驼峰形式:

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    原因先不解释,后面会说。

    容易犯的错:
    我们之前在配置文件中加入了bean对象查找的根目录,意味着会从这个目录开始向下搜索,但不会向上:

    下级目录

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    上级目录

    Lecture Java Spring et analyse des instances de stockage

    Exemple danalyse des opérations de lecture et décriture dans Java SpringPrésentation des dépendances

    Java Spring Reading and Storage Instance AnalysisExemple danalyse des opérations de lecture et décriture dans Java Springrrreee

    Créer un fichier de configuration

    Nous avons convenu de créer l'objet bean dans com.bean sous le package : Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Lecture Java Spring et analyse des instances de stockageExemple danalyse des opérations de lecture et décriture dans Java Spring rrreee

    2. Ajoutez des annotations pour stocker les beans dans le conteneur
    Le cœur de l'utilisation de Spring est d'utiliser des annotations. Nous avons appris 5 annotations

    Exemple danalyse des opérations de lecture et décriture dans Java Spring@Controller [Controller] @Service [Service] @Repository [Warehouse] @Configuration [Configuration. /Layout]@Component [Component] Contrôleur 2.1

    Instance de lecture et de stockage Java Spring analyseExemple danalyse des opérations de lecture et décriture dans Java Spring

    Lecture Java Spring et analyse des instances de stockage
    Nous avons pu obtenir l'objet en passant le paramètre id auparavant, mais cela revenait à ajouter une ligne de beans pour ajouter manuellement l'identifiant, mais maintenant que nous utilisons des annotations, pouvons-nous utiliser uniquement le type de classe pour l'obtenir ?

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Lorsque nous utilisons des annotations pour injecter des objets bean, l'identifiant est en fait la forme chameau du nom de classe par défaut :

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Lecture de Java Spring et analyse des instances de stockage
    La raison ne sera pas expliquée en premier, mais sera discutée plus tard.

    Exemple danalyse des opérations de lecture et décriture dans Java SpringErreurs faciles :
    Nous avons précédemment ajouté le répertoire racine pour la recherche d'objets bean dans le fichier de configuration, ce qui signifie que la recherche commencera à partir de ce répertoire vers le bas, mais pas vers le haut :

    Répertoire de téléchargementExemple danalyse des opérations de lecture et décriture dans Java Spring

    Lecture et stockage Java Spring Exemple d'analyse
    Analyse d'exemples de lecture et de stockage Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java SpringAnnuaire Parent

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring2.2 Service

    2.3 Référentiel

    🎜🎜🎜🎜🎜🎜 🎜2.4 Configuration🎜 🎜🎜🎜🎜🎜🎜🎜Composant 2.5🎜🎜🎜 🎜🎜🎜🎜🎜2.6 Pourquoi existe-t-il cinq grandes catégories d'annotations🎜🎜🎜🎜🎜Chacun dans l'entreprise est responsable de différents domaines, donc les annotations de classe utilisées sont également différentes, mais l'essence des cinq grandes catégories d'annotations est la même . 🎜🎜🎜🎜🎜🎜🎜🎜Nous pouvons clairement voir à travers les deux annotations de classe que les quatre autres annotations introduisent toutes des méthodes de l'annotation Component, ce qui signifie que Component est le père des quatre autres annotations de classe. Alors, que fait Component ? Ce n'est tout simplement pas facile de le classer dans les quatre autres catégories lors de l'annotation~🎜🎜2.7 Pourquoi l'identifiant par défaut est-il une petite bosse🎜🎜Nous utilisons la recherche globale :🎜🎜

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Trouver AnnotationBeanNameGenerator :

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Test :

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    2.8 Utilisation des annotations de bean

    L'annotation Bean est une annotation de méthode Lorsqu'elle est utilisée sur une méthode, elle renvoie. L'objet sera également injecté par Spring, mais il doit être utilisé avec cinq principaux types d'annotations (n'importe laquelle fera l'affaire)

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    id est le nom de la méthode.

    2.8.1 Renommer le bean

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    2.8.2 Renommer plusieurs

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Remarque : Lorsque vous utilisez l'attribut name pour renommer, l'original Le nom de la méthode perdra son effet, ce qui signifie que seul le nom modifié pourra être utilisé comme identifiant. 注意:当使用name属性重命名后,原本的方法名将失去作用,也就是说只能使用那么修改后的名字作为id了。

    获取bean对象

    获取bean对象也叫对象注入,其有以下3种方法:

    • 属性注入

    • 构造方法注入

    • Setter注入

    1.属性注入

    1.1 Autowired

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    虽然现在看起来没什么问题,但是当我们对同一类型的对象进行了多次注入:

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    此时就需要精准定位所选择的对象了,需要类型+名字:

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    1.2Resource

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    1.3二者区别

    Resource有个name 属性,可以指定注入bean的名称

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    但Autowired也有个搭配注解,@Qualifier,一样可以指定选择的bean对象,所以二者之间嘛,我觉得打成平手

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    ps:Autowired注解一开始是要进行查询所有类型为所需注入的对象的类型,但Autowired一次只能注入一个对象,因此当统一类型的对象注入多次后会报错。而Qualifier注解本质上是对其所查询的结果进行筛选。

    2.构造方法注入

    还是使用Autowired注解:

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    ps

    Obtenir des objets bean

    Obtenir des objets bean est également appelé injection d'objets. Il existe trois méthodes :

    • Exemple danalyse des opérations de lecture et décriture dans Java SpringInjection d'attribut
    • 🎜Injection de constructeur🎜
    • 🎜Injection de setter🎜

    1. Injection de propriété

    🎜1.1 Autowired🎜🎜Lecture Java Spring et analyse des instances de stockage🎜🎜Lecture Java Spring et analyse des instances de stockage🎜🎜Lecture Java Spring et analyse des instances de stockage🎜🎜🎜Bien qu'il ne semble y avoir aucun problème maintenant, lorsque nous effectuons plusieurs opérations sur le même type d'objets Injections : 🎜 🎜🎜Lecture Java Spring et analyse des instances de stockage🎜 🎜Lecture et analyse des instances de stockage Java Spring🎜🎜Vous en avez besoin en ce moment Pour localiser avec précision le objet sélectionné, vous avez besoin de type+name:🎜🎜 Lecture de Java Spring et analyse des instances de stockage🎜🎜1.2Resource🎜🎜Java Spring lecture et analyse de l'instance de stockage🎜🎜1.3 La différence entre les deux🎜🎜La ressource a un attribut name, qui peut spécifier le nom du bean injecté🎜🎜Lecture et analyse des instances de stockage Java Spring🎜🎜Mais Autowired a également une annotation correspondante, @Qualifier, qui peut également spécifier l'objet bean sélectionné, donc Entre les deux, je pense que c'est une égalité🎜🎜Lectures Java Spring et analyse des instances de stockage 🎜🎜ps : L'annotation Autowired interroge initialement tous les types pour les types d'objets qui doivent être injectés, mais Autowired ne peut injecter qu'un seul objet à la fois, donc lorsqu'un type unifié Une erreur sera signalé après que l'objet ait été injecté plusieurs fois. L'annotation Qualifier filtre essentiellement les résultats de sa requête. 🎜

    2. Injection de méthode de constructeur

    🎜🎜Utilisez toujours les annotations Autowired : 🎜🎜🎜Lecture de Java Spring et analyse des instances de stockage🎜🎜 Java Spring Reading and Storage Instance Analysis🎜🎜ps : lorsqu'il n'y a qu'un seul constructeur, Autowired peut être omis🎜🎜mais il ne peut pas être omis lorsqu'il y en a plus de deux🎜🎜🎜🎜

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Injection Setter

    ou via Autowired

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    ResourceL'injection Setter est également prise en charge.

    Questions d'entretien classiques

    Quelle est la différence entre l'injection d'attributs, l'injection de constructeur et l'injection de setter ?

    Exemple danalyse des opérations de lecture et décriture dans Java Spring

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer