# Global logging configuration log4j.rootLogger=DEBUG, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd" > <!--p命名空间约束的位置--> <!--属性注入--> <!-- 因id的值不能出现特殊字符,所以使用name --> <!-- 如果同时写两个bean标签 需要添加scope属性‘多例prototype‘ --> <!--需要有参构造器--> <bean name="ud" scope="prototype" class="cn.yzq.dao.impl.UserDaoImpl"> <constructor-arg name="name" value="小米"></constructor-arg> <!--name的值是属性(字段)、value是具体传的值--> <constructor-arg name="age" value="6"></constructor-arg> </bean> <!-- 使用set赋值,需要无参构造器和set访问方式 --> <bean name="ud2" scope="prototype" class="cn.yzq.dao.impl.UserDaoImpl"> <property name="name" value="华为"></property> <!--name的值是属性(字段)、value是具体传的值--> <property name="age" value="666"></property> </bean> <!-- 对象类型注入 --> <!-- 首先需要用bean标签创建出一个对象 --> <bean name="ud3" scope="prototype" class="cn.yzq.dao.impl.UserDaoImpl"> <property name="name" value="iphone"></property> <property name="age" value="000"></property <!-- 需要创建一个被关联的实体 --> <property name="car" ref="car"></property> <!-- name的值是属性名(字段名) ref值是要关联的实体 --> </bean> <!-- 被管理的实体创建 --> <bean name="car" class="cn.yzq.dao.impl.Car"></bean> <!-- p命名空间的属性注入 --> <!-- 基本数据类型 格式 p:属性名="属性的值" --> <!-- 对象数据类型格式 p:属性名(对象)-ref="关联的实体" --> <bean name="ud4" class="cn.yzq.dao.impl.UserDaoImpl" p:name="红米" p:age="99" p:car-ref="car"></bean> <!-- 复杂类型的注入 --> <bean name="ud5" scope="prototype" class="cn.yzq.dao.impl.UserDaoImpl"> <!-- name值是属性名 --> <!--数组注入--> <property name="nums"> <list> <value>1</value> <value>2</value> <value>3</value> </list> </property> <!--list集合注入--> <!-- name值是属性名 --> <property name="lists"> <list> <value>a</value> <value>b</value> <value>c</value> </list> </property> </bean> <bean name="ud6" scope="prototype" class="cn.yzq.dao.impl.UserDaoImpl"> <!-- 注入 Map 集合 --> <property name="map"> <map> <entry key="aaa" value="111" /> <entry key="bbb" value="222" /> <entry key="ccc" value="333" /> </map> </property> <!-- Properties 的注入 --> <!--用于给配置文件赋值和取值--> <property name="properties"> <props> <prop key="username">root</prop> <prop key="password">123</prop> </props> </property> </bean> </beans>
@Test public void demo2() { // 创建 Spring 的工厂类: ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); // 通过工厂解析 XML 获取 Bean 的实例. UserDao userDao = (UserDao) applicationContext.getBean("ud2"); //需要与核心配置文件中的id 或 name 相对应 userDao.sayHello(); }
ClassPathXmlApplicationContext
|
:加载类路径下 Spring 的配置文件.
|
FileSystemXmlApplicationContext
|
:加载本地磁盘下 Spring 的配置文件.
|
* singleton
|
:默认值,单例的.
|
* prototype
|
:多例的.
|
* request
|
:WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 request 域中.
|
* session
|
:WEB 项目中,Spring 创建一个 Bean 的对象,将对象存入到 session 域中.
|
<bean name="ud" init-method="show" scope="prototype" class="cn.yzq.dao.impl.UserDaoImpl"> <constructor-arg name="name" value="小米"></constructor-arg> <constructor-arg name="age" value="6"></constructor-arg> </bean> <!--show是实现类中的一个方法 ,在执行下面代码之前先执行show方法--> <!--destroy-method使用方法一致-->
原文:https://www.cnblogs.com/yzqyxq/p/11700497.html