applicationcontext获取bean_SpringIOC--依赖注入和set方法Bean装配

新建一个接口和实现类,测试一个普通方法

v2-93ca0b541a38f344f7799adb98e4fc92_b.jpg

1.要测试该方法,需要new对象,先去spring-config.xml配置文件中创建bean标签并设置参数

v2-c4bb5b1116cef5dadc163976c484fe81_b.jpg
<bean id="UserService" class="com.itszt.service.UserServiceImpl"></bean>

2.在测试类中创建对象并测试方法

v2-8e4cf664bde95f450ec5da7ec0e84fbe_b.jpg

3.回到实现类中,将之前的UserDao作为一个实例变量,我们之前学习过成员变量赋值的方法

set方法和构造器传参

先来看set方法:对象在spring-config.xml配置文件中,需要增加成员变量的属性设置,这就是依赖注入.

测试成功

v2-a19fc6947ecf331efbe5b870353de3c4_b.jpg

v2-9a49cce9bae30e8e35116f3f9b2c1483_b.jpg
<bean id="UserService" class="com.itszt.service.UserServiceImpl">
    <property name="userDao" ref="userDao"></property>
</bean>

v2-70c0e7e089e4607d345006bbad8963dd_b.jpg

4.刚才看完了成员变量为对象的情况,现在来看一下基本数据类型的成员变量,

新鲜一个类MyBeans.class,在类中定义2个成员变量和set和get方法,一个show方法输出两个属性值.

通过bean装配去设置成员变量的值

v2-cc2ceacacf4ae21cfa4d4385c8eb946d_b.jpg
<bean id="myBeans" class="com.itszt.test.MyBeans">
    <property name="data1" value="val1"></property>
    <property name="data2" value="666"></property>
</bean>

5.去测试类进行测试,测试成功

v2-9390bad4385464bba9fb0364427794eb_b.jpg

6.再来看下数组的成员变量的设置,测试成功

v2-03f6f90522b3c6f5383c245c58d14891_b.jpg

v2-2413a9500aaf6cf5c6d6f0b89cce088c_b.jpg
<property name="data3">
    <array>
        <value>haha1</value>
        <value>haha2</value>
        <value>haha3</value>
        <value>haha4</value>
    </array>
</property>

v2-7790fc862d6268baa269f2e939c32dea_b.jpg

7.当成员变量是List集合时.

v2-6de4954f72e8b09b0bcaddce1ff5dc59_b.jpg

v2-5386f7530b7d792074bed93a056a497f_b.jpg
<property name="data4">
    <list>
        <value>hehe1</value>
        <value>hehe2</value>
        <value>hehe3</value>
        <value>hehe4</value>
    </list>
</property>

v2-c0ca424ea8e88f57af393b44a4cf1230_b.jpg

8.成员变量为Map集合时,测试成功

v2-4ece0977a3d79a8f44321400797d8a4c_b.jpg

v2-a4462f5308a318003f38766cc6bd0e11_b.jpg
<property name="data5">
    <map>
        <entry key="key1" value="111"></entry>
        <entry key="key2" value="222"></entry>
        <entry key="key3" value="333"></entry>
        <entry key="key4" value="444"></entry>
    </map>
</property>

v2-d218d63a5587ff3dc4a695ba37ecccd2_b.png

9.成员变量为泛型是对象的List集合,新建一个Dog类,测试成功.

v2-ad451a4f83bafb2dc6648490fcc4c698_b.jpg

v2-084f73fa88491a2a3c99fb970374b167_b.jpg

v2-b46e381f0b547c36d4b830a7d97fb76d_b.jpg
<property name="data6">
    <list>
        <ref bean="dog1"></ref>
        <ref bean="dog2"></ref>
    </list>
</property>
<bean id="dog1" class="com.itszt.test.Dog">
    <property name="dogName" value="dahuang"></property>
    <property name="dogAge" value="5"></property>
</bean>
<bean id="dog2" class="com.itszt.test.Dog">
    <property name="dogName" value="xiaohuang"></property>
    <property name="dogAge" value="1"></property>
</bean>

v2-ca0effcaf0b2055cb5dfd9323f58ffa8_b.png

下面是使用的代码:

package com.itszt.service;

/**
 * Created by hp on 2019-09-20.
 */
public interface UserService {
    public void go(String data1,int data2);
}
package com.itszt.service;

import com.itszt.dao.UserDao;

/**
 * Created by hp on 2019-09-20.
 */
public class UserServiceImpl implements UserService {

    private UserDao userDao;

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void go(String data1, int data2) {
        userDao.hello(data1,data2);
        System.out.println("UserServiceImpl-->data1="+data1+"------data2="+data2);
    }
}
package com.itszt.test;

import com.itszt.dao.UserDao;
import com.itszt.service.UserService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Created by hp on 2019-09-19.
 */
public class Test1 {
    @Test
    public void testUserDao(){
        //获取IOC容器创建的对象:
        //1.获得一个上下文容器的工厂--参数传入配置文件
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring-config.xml");
        //2.通过工厂获取对象--默认的返回值是Object对象;想要明确的对象需要在参数中传入该对象的类对象,相当于声明接口,new实现类对象.
        //Object userDao = applicationContext.getBean("userDao");
        UserDao userDao = applicationContext.getBean("userDao", UserDao.class);
        userDao.hello("aaa",111);
    }
    @Test
    public void testUserService(){
        //获取工厂对象
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring-config.xml");
        //通过工厂获得对象
        UserService userService = applicationContext.getBean("UserService", UserService.class);
        userService.go("abc",666);
    }
    @Test
    public void testMyBeans(){
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("spring-config.xml");
        MyBeans myBeans = applicationContext.getBean("myBeans", MyBeans.class);
        myBeans.show();
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!--创建出的对象的唯一标识id属性     文件所在位置是class属性-->
    <bean id="userDao" class="com.itszt.dao.UserDaoImpl"></bean>

    <bean id="UserService" class="com.itszt.service.UserServiceImpl">
        <property name="userDao" ref="userDao"></property>
    </bean>

    <bean id="myBeans" class="com.itszt.test.MyBeans">
        <property name="data1" value="val1"></property>
        <property name="data2" value="666"></property>
        <property name="data3">
            <array>
                <value>haha1</value>
                <value>haha2</value>
                <value>haha3</value>
                <value>haha4</value>
            </array>
        </property>
        <property name="data4">
            <list>
                <value>hehe1</value>
                <value>hehe2</value>
                <value>hehe3</value>
                <value>hehe4</value>
            </list>
        </property>
        <property name="data5">
            <map>
                <entry key="key1" value="111"></entry>
                <entry key="key2" value="222"></entry>
                <entry key="key3" value="333"></entry>
                <entry key="key4" value="444"></entry>
            </map>
        </property>
        <property name="data6">
            <list>
                <ref bean="dog1"></ref>
                <ref bean="dog2"></ref>
            </list>
        </property>
    </bean>

    <bean id="dog1" class="com.itszt.test.Dog">
        <property name="dogName" value="dahuang"></property>
        <property name="dogAge" value="5"></property>
    </bean>
    <bean id="dog2" class="com.itszt.test.Dog">
        <property name="dogName" value="xiaohuang"></property>
        <property name="dogAge" value="1"></property>
    </bean>

</beans>
package com.itszt.test;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * Created by hp on 2019-09-20.
 */
public class MyBeans {
    private String data1;
    private int data2;
    private String[] data3;
    private List<String> data4;
    private Map<String,Integer> data5;
    private List<Dog> data6;

    public void show(){
        System.out.println("MyBeans-->data1+ = " + data1 +"------data2 = " + data2+"------data3 = " + Arrays.toString(data3)+"------data4 = " + data4+"------data5 = " + data5+"------data6 = " + data6);
    }

    public List<Dog> getData6() {
        return data6;
    }

    public void setData6(List<Dog> data6) {
        this.data6 = data6;
    }

    public Map<String, Integer> getData5() {
        return data5;
    }

    public void setData5(Map<String, Integer> data5) {
        this.data5 = data5;
    }

    public List<String> getData4() {
        return data4;
    }

    public void setData4(List<String> data4) {
        this.data4 = data4;
    }

    public String[] getData3() {
        return data3;
    }

    public void setData3(String[] data3) {
        this.data3 = data3;
    }

    public String getData1() {
        return data1;
    }

    public void setData1(String data1) {
        this.data1 = data1;
    }

    public int getData2() {
        return data2;
    }

    public void setData2(int data2) {
        this.data2 = data2;
    }
}
package com.itszt.test;

/**
 * Created by hp on 2019-09-20.
 */
public class Dog {

    private String dogName;
    private int dogAge;

    @Override
    public String toString() {
        return "Dog{" +
                "dogName='" + dogName + ''' +
                ", dogAge=" + dogAge +
                '}';
    }

    public String getDogName() {
        return dogName;
    }

    public void setDogName(String dogName) {
        this.dogName = dogName;
    }

    public int getDogAge() {
        return dogAge;
    }

    public void setDogAge(int dogAge) {
        this.dogAge = dogAge;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值