Spring依赖注入

1. 基于set方法注入

    <bean class="com.jixian.spring.entity.Book">
        <property name="bname" value="计算机百科全书"/>
        <property name="author" value="jixian"/>
    </bean> 

2. 基于构造器注入

    <bean class="com.jixian.spring.entity.Book">
        <constructor-arg name="bname" value="计算机网络"/>
        <constructor-arg name="author" value="jixian"/>
    </bean>

 3. 为对象类型赋值

  3.1 外部bean

    <bean id="department" class="com.jixian.spring.entity.Department">
        <property name="dname" value="开发部"/>
    </bean>
    <bean id="employee" class="com.jixian.spring.entity.Employee">
        <property name="ename" value="jixian"/>
        <property name="age" value="25"/>
        <property name="department" ref="department"/>
    </bean>

  3.2 内部bean

    <bean id="employee" class="com.jixian.spring.entity.Employee">
        <property name="ename" value="jixian"/>
        <property name="age" value="25"/>
        <property name="department">
            <bean id="department" class="com.jixian.spring.entity.Department">
                <property name="dname" value="开发部"/>
            </bean>
        </property>
    </bean>

  3.3 级联属性赋值

    <bean id="department" class="com.jixian.spring.entity.Department"/>
    <bean id="employee" class="com.jixian.spring.entity.Employee">
        <property name="ename" value="jixian"/>
        <property name="age" value="20"/>
        <property name="department" ref="department"/>
        <property name="department.dname" value="测试部" />
    </bean>

  3.4 数组类型赋值

    <bean id="department" class="com.jixian.spring.entity.Department">
        <property name="dname" value="技术部"/>
    </bean>
    <bean id="employee" class="com.jixian.spring.entity.Employee">
        <property name="ename" value="jixian"/>
        <property name="age" value="20"/>
        <property name="department" ref="department"/>
        <property name="skills">
            <array>
                <value>C++</value>
                <value>C</value>
                <value>Java</value>
                <value>Python</value>
                <value>Javascript</value>
            </array>
        </property>
    </bean>

  3.5 List集合类型赋值

    <bean id="department" class="com.jixian.spring.entity.Department">
        <property name="dname" value="技术部"/>
        <property name="employeeList">
            <list>
                <ref bean="employee1"/>
                <ref bean="employee2"/>
            </list>
        </property>
    </bean>
    <bean id="employee1" class="com.jixian.spring.entity.Employee">
        <property name="ename" value="jixian"/>
        <property name="age" value="20"/>
    </bean>
    <bean id="employee2" class="com.jixian.spring.entity.Employee">
        <property name="ename" value="jack"/>
        <property name="age" value="21"/>
    </bean>

  3.6 Map集合赋值

    <bean id="teacher" class="com.jixian.spring.entity.Teacher">
        <property name="tid" value="10254"/>
        <property name="tname" value="李老师"/>
    </bean>
    <bean id="student" class="com.jixian.spring.entity.Student">
        <property name="sid" value="171525"/>
        <property name="sname" value="王同学"/>
        <property name="teacherMap">
            <map>
                <entry key="10012" value-ref="teacher"/>
            </map>
        </property>
    </bean>

  3.7 引用集合类型赋值

http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
    <bean id="lesson1" class="com.jixian.spring.entity.Lesson">
        <property name="lname" value="计算机操作系统"/>
    </bean>
    <bean id="lesson2" class="com.jixian.spring.entity.Lesson">
        <property name="lname" value="计算机组成原理"/>
    </bean>
    <bean id="lesson3" class="com.jixian.spring.entity.Lesson">
        <property name="lname" value="计算机网络"/>
    </bean>
    <bean id="lesson4" class="com.jixian.spring.entity.Lesson">
        <property name="lname" value="数据结构"/>
    </bean>
    <bean id="teacher1" class="com.jixian.spring.entity.Teacher">
        <property name="tid" value="1011"/>
        <property name="tname" value="张老师"/>
    </bean>
    <bean id="teacher2" class="com.jixian.spring.entity.Teacher">
        <property name="tid" value="1021"/>
        <property name="tname" value="王老师"/>
    </bean>
    <bean id="student" class="com.jixian.spring.entity.Student">
        <property name="sid" value="1001126"/>
        <property name="sname" value="jixian"/>
        <property name="teacherMap" ref="map"/>
        <property name="lessonList" ref="list"/>
    </bean>
    <util:list id="list">
        <ref bean="lesson1"/>
        <ref bean="lesson2"/>
        <ref bean="lesson3"/>
        <ref bean="lesson4"/>
    </util:list>
    <util:map id="map">
        <entry key="1001" value-ref="teacher1"/>
        <entry key="1002" value-ref="teacher2"/>
    </util:map>

  3.8 p命名空间

xmlns:p="http://www.springframework.org/schema/p"
    <bean id="lesson1" class="com.jixian.spring.entity.Lesson">
        <property name="lname" value="计算机操作系统"/>
    </bean>
    <bean id="lesson2" class="com.jixian.spring.entity.Lesson">
        <property name="lname" value="计算机组成原理"/>
    </bean>
    <bean id="lesson3" class="com.jixian.spring.entity.Lesson">
        <property name="lname" value="计算机网络"/>
    </bean>
    <bean id="lesson4" class="com.jixian.spring.entity.Lesson">
        <property name="lname" value="数据结构"/>
    </bean>
    <bean id="teacher1" class="com.jixian.spring.entity.Teacher">
        <property name="tid" value="1011"/>
        <property name="tname" value="张老师"/>
    </bean>
    <bean id="teacher2" class="com.jixian.spring.entity.Teacher">
        <property name="tid" value="1021"/>
        <property name="tname" value="王老师"/>
    </bean>
    <bean id="student" class="com.jixian.spring.entity.Student" p:lessonList-ref="list"
    p:teacherMap-ref="map" p:sid="10020" p:sname="jixian">
    </bean>
    <util:list id="list">
        <ref bean="lesson1"/>
        <ref bean="lesson2"/>
        <ref bean="lesson3"/>
        <ref bean="lesson4"/>
    </util:list>
    <util:map id="map">
        <entry key="1001" value-ref="teacher1"/>
        <entry key="1002" value-ref="teacher2"/>
    </util:map>

  3.9 引入外部属性文件

    3.9.1 加入依赖

 <!-- MySQL驱动 -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.30</version>
</dependency>

<!-- 数据源 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.15</version>
</dependency>

    3.9.2 创建jdbc.properties

jdbc.user=root
jdbc.password=atguigu
jdbc.url=jdbc:mysql://localhost:3306/ssm?serverTimezone=UTC
jdbc.driver=com.mysql.cj.jdbc.Driver

    3.9.3 引入context 名称空间

xmlns:context="http://www.springframework.org/schema/context"
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd

    3.9.4 配置XML

<context:property-placeholder location="classpath:jdbc.properties"/>
<bean id="druidDataSource" class="com.alibaba.druid.pool.DruidDataSource">
    <property name="url" value="${jdbc.url}"/>
    <property name="driverClassName" value="${jdbc.driver}"/>
    <property name="username" value="${jdbc.user}"/>
    <property name="password" value="${jdbc.password}"/>
</bean>
posted @ 2023-02-26 10:44  诸葛卧龙仙人  阅读(14)  评论(0)    收藏  举报