首页 > 其他分享 >DI依赖注入

DI依赖注入

时间:2023-09-06 11:24:21浏览次数:30  
标签:容器 Set String DI private 依赖 注入

一、构造器注入

1)下标赋值

<bean id="user" class="com.along.pojo.User">
   <constructor-arg index="0" value="along"/>
</bean>

2)类型(不推荐)

<bean id="user" class="com.along.pojo.User">
    <constructor-arg type="java.lang.String" value="along"/>
</bean>

3)参数名

<bean id="user" class="com.along.pojo.User">
    <constructor-arg name="name" value="along"/>
</bean>

二、Set方式注入(重点)

依赖注入:set注入。(依赖:bean对象的创建依赖于容器。注入:bean对象中的所有属性,由容器来注入。)Set方式注入实质上就是在容器创建对象时使用实体类中属性的set方法给每个属性赋值。

创建一个学生实体类

public class Student {
    private String name;
    private Address address;
    private String[] books;
    private List<String> hobbys;
    private Map<String,String> card;
    private Set<String> games;
    private String wife;
    private Properties info;
}

xml文件中注入

    <bean id="student" class="com.along.pojo.Student">
            <!--第一种,普通值注入,value-->
            <property name="name" value="阿龙"/>
            <!--第二种,Bean注入,ref-->
            <property name="address" ref="address"/>
            <!--数组注入-->
            <property name="books">
                <array>
                    <value>红楼梦</value>
                    <value>三国演义</value>
                    <value>西游记</value>
                    <value>水浒传</value>
                </array>
            </property>
            <!--List注入-->
            <property name="hobbys">
                <list>
                    <value>唱</value>
                    <value>跳</value>
                    <value>rap</value>
                    <value>篮球</value>
                </list>
            </property>
            <!--Map注入-->
            <property name="card">
                <map>
                    <entry key="身份证" value="121212100001010615"/>
                    <entry key="银行卡" value="45454545454545"/>
                </map>
            </property>
            <!--Set注入-->
            <property name="games">
                <set>
                    <value>LOL</value>
                    <value>COC</value>
                </set>
            </property>
            <!--NULL-->
            <property name="wife">
                <null/>
            </property>
            <!--Properties-->
            <property name="info">
                <props>
                    <prop key="id">1231544</prop>
                    <prop key="username">小龙</prop>
                    <prop key="userpassword">456321</prop>
                </props>
            </property>
        </bean>

三、c命名和p命名空间注入(使用的时候需要在头文件中加入相关链接)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:c="http://www.springframework.org/schema/c"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
        <bean id="user1" class="com.along.pojo.User" p:name="阿龙" p:age="18" scope="prototype"/>
        <bean id="user2" class="com.along.pojo.User" c:name="小龙" c:age="20"/>
</beans>

 

标签:容器,Set,String,DI,private,依赖,注入
From: https://www.cnblogs.com/panglinglong/p/17681664.html

相关文章

  • centos7 配置redis设置开机自动启动
    centos7以上是用Systemd进行系统初始化的,Systemd是Linux系统中最新的初始化系统(init),它主要的设计目标是克服sysvinit固有的缺点,提高系统的启动速度。Systemd服务文件以.service结尾,比如现在要建立redis为开机启动,如果用yuminstall命令安装的,yum命令会自动创建redis.servic......
  • Codeforces Round 406 (Div. 2) D. Legacy 线段树优化建图
    传送门题目大意:给定n个点,m个操作,和起点s。其中n和q大于等于1小于等于1e5,s大于等于1小于等于n其中m个操作有三种情况:  1.输入1uvval表示从u号点向v号点连一个权值为val的有向边,其中1<=u<=n,1<=v<=n,1<=val<=1e9  2.输入2ulrval表示从u号点......
  • 【ICML2022】Understanding The Robustness in Vision Transformers
    来自NUS&NVIDIA文章地址:[2204.12451]UnderstandingTheRobustnessinVisionTransformers(arxiv.org)项目地址:https://github.com/NVlabs/FAN一、MotivationCNN使用滑动窗的策略来处理输入,ViT将输入划分成一系列的补丁,随后使用自注意力层来聚合补丁并产生他们的表示,ViT的......
  • Mediator Pattern
    MediatorPattern就类似现实生活中的中介(中间人),房屋中介、媒婆中介、权利寻租中介...,现实中为什么需要中介,在现实中的原因主要是两个一为了保护双方当事人的安全,只要中介人不泄密,他们双方就可以秘密的把交易完成,并且双方都是安全的。二是买卖双方并不信任双方,但是他们都共同的......
  • maven插件之Dependency:analyze,去掉无用maven依赖
    前言完成新功能的开发后,在发包前组长告诉我要检查maven工程的依赖,并告诉我相关指令,此文记录一下使用方式正文简介maven官网之Dependency插件Dependency插件提供了操纵artifact的能力,可以复制以及拆包本地或远程仓库的artifact到指定地点。Dependency有很多的goal,这里介绍的是de......
  • <br /> <font size= 1 ><table class= xdebug-error xe-notice dir= ltr border= 1
    PHP传给前端的值有大量html代码错误1:html代码中,发送请求,多加了引号 ......
  • SpringBoot整合Redis
    SpringBoot整合Redis整合springcache导入依赖<!--引入redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>......
  • Proj CDeepFuzz Paper Reading: Invariance-inducing regularization using worst-cas
    Abstract本文:Task:1.proveinvariance-inducingregularizerscanincreasepredictiveaccuracyforworst-casespatialtransformations2.provethatonadversarialexamplesfromtransformationgroupsintheinfinitedatalimitrobusttrainingcanalsoimpro......
  • ​MPDIoU: A Loss for Efficient and Accurate Bounding Box Regression
    ​MPDIoU:ALossforEfficientandAccurateBoundingBox RegressionMPDIoU:一个有效和准确的边界框损失回归函数摘要边界框回归(Boundingboxregression,BBR)广泛应用于目标检测和实例分割,是目标定位的重要步骤。然而,当预测框与边界框具有相同的纵横比,但宽度和高度值完......
  • Proj CDeepFuzz Paper Reading: Framework for Evaluating Faithfulness of Local Exp
    Abstract本文:Task:1.studythefaithfulnessofanexplanationsystemtotheunderlyingpredictionmodelonconsistencyandsufficiency2.introducequantitativemeasuresofconsistencyandsufficiency3.provideestimatorsandsamplecomplexityboundsfo......