海阔天空

当前时间为:
欢迎大家来到海阔天空https://www.9713job.com,广告合作以及淘宝商家推广请微信联系15357240395

2020javaweb框架教程:spring的依赖注入

未分类
2020-12-10 14:17:40
1822677238@qq.com

手机扫码查看

2020javaweb框架教程:spring的依赖注入

2020javaweb框架教程:spring的set依赖注入

set方式注入

value表示值类型的注入,ref表示对象类型的注入

创建两个对象,Users和Car

public class Users {
    private int id;
    private String name;
    private double salary;
    private Car car;
}
public class Car {
    private String name;
    private String color;
}

配置文件:

<!-- set方式注入 -->
<bean name="car" class="entity.Car">
    <property name="name" value="Persoche" />
    <property name="color" value="red"/>
</bean>
<bean name="users" class="entity.Users">
    <property name="id" value="1" />
    <property name="name" value="admin" />
    <property name="salary" value="5000" />
    <property name="car" ref="car" />
</bean>

测试工厂:

public void test(){
    AbstractApplicationContext context;
    context=new ClassPathXmlApplicationContext("applicationContext-inject.xml");
    Users users = (Users) context.getBean("users");
    System.out.println(users);
}

 

构造方法注入

创建类对象的有参构造方法

配置文件进行构造方法注入:

<!-- 构造方法注入  -->
<bean name="car2" class="entity.Car">
    <property name="name" value="BMW" />
    <property name="color" value="Black"/>
</bean>
<bean name="users" class="entity.Users">
    <constructor-arg name="name" value="admin888"/>
    <constructor-arg name="id" value="2"/>
    <constructor-arg name="salary" value="5000"/>
    <constructor-arg name="car" ref="car2"/>
</bean>

测试工厂

type类型注入

在类中添加构造方法:

在配置文件配置bean对象

<!-- type类型注入  -->
<bean name="users" class="entity.Users" >
    <constructor-arg name="id" value="3" index="0" />
    <constructor-arg name="name" value="988" index="1" type="java.lang.Integer"/>
</bean>

然后启动测试工厂

p名称空间注入

在bean配置文件顶部添加:

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

然后在下面添加注入:

<!-- p 名称空间注入 -->
<!-- p:属性名  表示值类型 -->
<!-- p:属性名-ref  表示引用类型 -->
<bean name="users" class="entity.Users" p:id="4" p:name="996"/>


然后启动测试工厂:

SPEL表达式注入

<!-- EL表达式 -->
<bean name="users" class="entity.Users">
    <property name="id" value="5"/>
    <property name="name" value="999"/>
</bean>
<bean name="users1" class="entity.Users">
    <property name="id" value="#{users.id}"/>
    <property name="name" value="#{users.name}"/>
</bean>


复杂类型注入

数组、List、Set、Map、Properties类型

数组

在一个类加入Object[] 数组,并添加getset方法以及toString方法

然后在配置文件添加:

<property name="obj">
    <array>
        <value>摩托车</value>
        <value>拖拉机</value>
        <value>兰博基尼</value>
        <value>法拉利</value>
    </array>
</property>

然后启动测试工厂:

List

<property name="list">
    <list>
        <value>admin</value>
        <value>admin888</value>
        <value>admin666</value>
    </list>
</property>

Set

<property name="set">
    <set>
        <value>123</value>
        <value>456</value>
        <value>789</value>
    </set>
</property>

Map集合

<property name="map">
    <map>
        <entry key="北京" value="010"/>
        <entry key="上海" value="021"/>
    </map>
</property>

properties注入

<property name="pro">
    <props>
        <prop key="username">admin</prop>
        <prop key="password">admin888</prop>
    </props>
</property>

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注