新建一个接口和实现类,测试一个普通方法
1.要测试该方法,需要new对象,先去spring-config.xml配置文件中创建bean标签并设置参数
<bean id="UserService" class="com.itszt.service.UserServiceImpl"></bean>
2.在测试类中创建对象并测试方法
3.回到实现类中,将之前的UserDao作为一个实例变量,我们之前学习过成员变量赋值的方法
set方法和构造器传参
先来看set方法:对象在spring-config.xml配置文件中,需要增加成员变量的属性设置,这就是依赖注入.
测试成功
<bean id="UserService" class="com.itszt.service.UserServiceImpl">
<property name="userDao" ref="userDao"></property>
</bean>
4.刚才看完了成员变量为对象的情况,现在来看一下基本数据类型的成员变量,
新鲜一个类MyBeans.class,在类中定义2个成员变量和set和get方法,一个show方法输出两个属性值.
通过bean装配去设置成员变量的值
<bean id="myBeans" class="com.itszt.test.MyBeans">
<property name="data1" value="val1"></property>
<property name="data2" value="666"></property>
</bean>
5.去测试类进行测试,测试成功
6.再来看下数组的成员变量的设置,测试成功
<property name="data3">
<array>
<value>haha1</value>
<value>haha2</value>
<value>haha3</value>
<value>haha4</value>
</array>
</property>
7.当成员变量是List集合时.
<property name="data4">
<list>
<value>hehe1</value>
<value>hehe2</value>
<value>hehe3</value>
<value>hehe4</value>
</list>
</property>
8.成员变量为Map集合时,测试成功
<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>
9.成员变量为泛型是对象的List集合,新建一个Dog类,测试成功.
<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>
下面是使用的代码:
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;
}
}