文章目录
与上一篇作比较: https://blog.csdn.net/weixin_42556863/article/details/108952582.
前言
使用了xml去构建项目
提示:以下是本篇文章正文内容,下面案例可供参考
一、xml是什么?(都是写代码的不喜欢看文字描述)
xml是一种用于标记电子文件使其具有结构性的标记语言。
二、使用步骤
前置条件
需要创建一个类跟一个接口分别为:
//SomeService.java
public interface SomeService {
void doSome();
}
//SomeServiceImpl.java
public class SomeServiceImpl implements SomeService {
@Override
public void doSome() {
System.out.println("执行了SomeServiceImpl中的doSome方法");
}
}
1.在resource中创建beans.xml文件(右击resource–>New–>XML Configuration File -->Spring Config)
2.编写beans.xml
beans.xml的作用:
告诉spring创建对象
声明bean,就是告诉spring要创建的某个类的对象
id:对象的自定义名称,唯一值。spring通过名称找到对象
class:类的全限定名称(不能是接口,因为spring是反射机制创建对象,必须使用类) spring就完成 SomeService service1=new SomeServiceImpl();
spring是把创建好的对象放在map,spring中有一个map存放对象的。
springMap.put(id的值,对象);
例如:springMap.put(“someService”,new SomeServiceImpl());
一个 bean声明一个对象。
<bean id="someService" class="com.kekek.service.impl.SomeServiceImpl" />
3.编写测试用例
String name:names是foreach的枚举
其实
for (String name:names) {
System.out.println("容器中定义的对象名称:"+name);
}
等同于
for (int i = 0; i < names.length ; i++) {
System.out.println("容器中定义的对象名称:"+names[i]);
}
完整代码
@Test
public void test03(){
//编写xml的名称
String config="beans.xml";
ApplicationContext ac=new ClassPathXmlApplicationContext(config);
//使用spring提供的方法,获取容器中定义的对象的数量
int nums=ac.getBeanDefinitionCount();
System.out.println("容器中定义的对象数量:"+nums);
//容器中每个定义的对象的名称
String names [] = ac.getBeanDefinitionNames();
for (String name:names) {
System.out.println("容器中定义的对象名称:"+name);
}
}
运行结果
beans.xml中只有一个bean,且名称为someService