spring_注入方式

1、set注入方式

(1)简单注入

<bean name="person" class="com.linxin.spring.pojo.Person" scope="singleton">
		<property name="name" value="zhangsan"></property>
		<property name="age" value="18"></property>
</bean> 

(2)1对1注入

	<!-- 
            car:车类
            person:人类
            name与person属性一致
            ref与bean name 一致

        -->
                <bean name="car" class="com.linxin.spring.pojo.Car" scope="singleton">
			<property name="name" value="SUV"></property>
			<property name="color" value="blue"></property>
		</bean>
		<bean name="person" class="com.linxin.spring.pojo.Person" scope="singleton">
			<property name="name" value="zhangsan"></property>
			<property name="age" value="18"></property>
			<property name="car" ref="car"></property>
		</bean> 

2、构造器注入

(1)新建有参数构造器

        public Person(String name, Integer age, Car car) {
		this.name = name;
		this.age = age;
		this.car = car;
	}

(2)配置<bean>

        	<bean name="car" class="com.linxin.spring.pojo.Car" scope="singleton">
			<property name="name" value="SUV"></property>
			<property name="color" value="blue"></property>
		</bean>
		<bean name="person" class="com.linxin.spring.pojo.Person" scope="singleton">
			<constructor-arg name="name" value="zhangsan" index="0"></constructor-arg>
			<constructor-arg name="age" value="18" type="java.lang.Integer" ></constructor-
                arg>
			<constructor-arg name="car" ref="car"></constructor-arg>
		</bean> 
		 // constructor-arg:注入构造器
                        属性:index:到出现参数顺序不同的构造器使用index="0/1/2"指定使用构造器。
                              type:当出现类型不同,参数名相同,使用type:指定数据类型,区别name

3.p名称注入

(1)引入名称空间

xmlns:p="http://www.springframework.org/schema/p"

(2)常用形式(配置数据源)

                <bean id="myDataSource" class="org.apache.commoud.dbcp.BasicDataSource" 
			destroy-method="close"
			p:driverClassName="com.mysql.jdbc.Driver"
			p:url="jdbc:mysql://localhost:3306/mydb"
			p:username="root"
			p:password="root"
		/>

(3)实例

p:属性名=值类型

扫描二维码关注公众号,回复: 11385203 查看本文章

p:属性名-ref 表示引用类型

                <bean name="person3" class="com.linxin.spring.pojo.Person"
			p:name="zhangsan" p:age="18" p:car-ref="car"
		></bean>

4.el表达式注入

                <bean name="car" class="com.linxin.spring.pojo.Car" scope="singleton">
			<property name="name" value="SUV"></property>
			<property name="color" value="blue"></property>
		</bean>
		<bean name="person" class="com.linxin.spring.pojo.Person" scope="singleton">
			<property name="name" value="zhangsan"></property>
			<property name="age" value="18"></property>
			<property name="car" ref="car"></property>
		</bean> 
                <bean name="person4" class="com.linxin.spring.pojo.Person">
			<property name="name" value="#{person.name}"></property>
			<property name="age" value="#{person.age}"></property>
			<property name="car" ref="car"></property>
		</bean>
        //    调用name的person的值 #{person.name}

5.复杂类型注入

     数组

<property name="car">
    <array>
        <value>自行车</value>
        <value>自行车</value>
        <value>自行车</value>
        <ref bean="car"/>
    </array>
</property>

List

<property name="list">
    <list>
        <value>自行车</value>
        <value>自行车</value>
        <value>自行车</value>
    </list>
</property>

Set

<property name="set">
    <set>
        <value>自行车1</value>
        <value>自行车2</value>
        <value>自行车3</value>
    </set>
</property>
// value值不能重复

Map

<property name="map">
    <map>
        <entry key="username" value="root></entry>
        <entry key="car" value-ref="car"></entry>
        <entry key-ref="person" value-ref="car"></entry>
    </map>
</property>
// key名不能重复,不然取最后赋值

properties类型

<properties name="properties">
    <props>
        <prop key="username">root</prop>
        <prop key="prassword">123456</prop>
    </props>

猜你喜欢

转载自blog.csdn.net/weixin_45460315/article/details/103679202
今日推荐