xml配置
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--
在Spring容器中配置bean对象
id:bean的名字,在程序中可以通过id获取对应的对象,建议每个对象都给定id,且不能重复
class:全类名,为了能够使Spring框架在底层通过Class.forName("全类名").newInstance()去调用JavaBean的无参构造方法
完成类的实例化
-->
<bean id="springDao" class="com.sy.Demo1.dao.impl.SpringDaoImpl"></bean>
<bean id="springDao2" class="com.sy.Demo1.dao.impl.SpringDaoImpl"></bean>
<!--<bean class="com.sy.dao.impl.UserDaoImpl"></bean>-->
<!--
错误:接口不能被实例化
-->
<!--<bean id="userDao3" class="com.sy.dao.UserDao"></bean>-->
<!--
错误:抽象类不能被实例化
-->
<!--<bean id="calendar1" class="java.util.Calendar"></bean>-->
</beans>
java调用
package com.sy.Demo1.text;
import com.sy.Demo1.dao.SpringDao;
import com.sy.Demo1.dao.impl.SpringDaoImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.util.Arrays;
public class Text {
public static void main(String[] args) {
// 实例对象
SpringDao springDao0 = new SpringDaoImpl();
// getBean获取对象
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
System.out.println(ac);
SpringDao springDao = (SpringDao) ac.getBean("springDao");
System.out.println(springDao);
SpringDao springDao1 = (SpringDao) ac.getBean("springDao");
System.out.println(springDao1);
// SpringDao springDao2=ac.getBean(SpringDao.class);
// System.out.println(springDao2);
SpringDao springDao3 = ac.getBean("springDao", SpringDao.class);
System.out.println(springDao3);
SpringDao springDao4 = ac.getBean("springDao2", SpringDao.class);
System.out.println(springDao4);
String[] beanNames = ac.getBeanDefinitionNames();
System.out.println(Arrays.toString(beanNames));
SpringDao springDao2 = ac.getBean(beanNames[0], SpringDao.class);
System.out.println(springDao2);
}
}
输出结果
无参构造方法
无参构造方法
org.springframework.context.support.ClassPathXmlApplicationContext@17f052a3: startup date [Mon Jun 24 16:55:19 CST 2019]; root of context hierarchy
com.sy.Demo1.dao.impl.SpringDaoImpl@204f30ec
com.sy.Demo1.dao.impl.SpringDaoImpl@204f30ec
com.sy.Demo1.dao.impl.SpringDaoImpl@204f30ec
com.sy.Demo1.dao.impl.SpringDaoImpl@e25b2fe
[springDao, springDao2]
com.sy.Demo1.dao.impl.SpringDaoImpl@204f30ec