社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
//1.无参构造
<bean id="user" class="com.wpq.pojo.User"></bean>
//在bean标签内部使用property标签,相当于调用set方法. name:要赋值的属性的属性名 value:值
<bean id="user" class="com.wpq.pojo.User">
<property name="name" value="zs"></property>
<property name="password" value="123"></property>
</bean>
//2.有参构造
<bean id="user" class="com.wpq.pojo.User">
<constructor-arg index="0" type="java.lang.String" name="name" value="张三"></constructor-arg>
<constructor-arg index="1" type="java.lang.String" name="password" value="123"></constructor-arg>
</bean>
//3.静态工厂模式--createPerson()为静态方法
<bean name="personFactory" class="com.wpq.factory.PersonFactory" factory-method="createPerson"/>
//4.工厂模式
<!--1.创建出工厂对象-->
<bean name="personFactory" class="com.wpq.factory.PersonFactory"/>
<!--2.调用工厂的instancePerson()方法创建出Person对象-->
<bean name="person" factory-bean="personFactory" factory-method="instancePerson"/>
<!--0.对象创建原理:xml解析+反射-->
<!--1.ClassPathXmlApplicationContext根据xml的路径和名称加载xml;-->
<!--2.对该xml文件进行解析-->
<!--3.根据class属性,获取class属性的值:com.wpq.domain.Person-->
<!--4.反射:获取字节码的方式,Class clazz=Class.forName("全路径");p.getClass();Person.class-->
<!--5.根据字节码创建对象:Person p=clazz.newInstance()-->
<!--6.给对象里的属性赋值:Fields[] fields=clazz.getDeclaredFields();-->
<!--7.遍历属性数组:for(Field field : fields){ field.setAccessable(true);field.set(30)}-->
<bean id="person" class="com.wpq.domain.Person">
<property name="name" value="zs"/>
<property name="age" value="30"/>
</bean>
<bean id="user" class="com.wpq.pojo.User">
<property name="name" value="zs"></property>
<property name="password" value="123"></property>
</bean>
<bean id="user" class="com.wpq.pojo.User">
<constructor-arg index="0" type="java.lang.String" name="name" value="张三"></constructor-arg>
<constructor-arg index="1" type="java.lang.String" name="password" value="123"></constructor-arg>
</bean>
<?xml version="1.0" encoding="UTF-8"?>
<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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--第3种注入方式:p命名空间,记得引入一个命名空间字符串:xmlns:p="http://www.springframework.org/schema/p"-->
<!--p:property的缩写!简化了set方式注入的代码编写-->
<bean name="car" class="com.wpq.domain.Car" p:logo="马车" p:color="黑色"/>
<bean name="person" class="com.wpq.domain.Person" p:name="阮小二" p:age="40" p:car-ref="car"/>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--4.第4种spel表达式来注入值-->
<bean name="car" class="com.syc.spring.domain.Car">
<property name="logo" value="劳斯莱斯"/>
<property name="color" value="黑色"/>
</bean>
<bean name="person" class="com.wpq.domain.Person">
<!--spel语法:#{变量名称}-->
<property name="name" value="#{car.logo}"/>
</bean>
</beans>
package com.wpq.domain;
import java.util.*;
/**
* 集合类型赋值
*/
public class CollectionBean {
//array节点
private Object[] arr;
//list节点
private List list;
//map节点
private Map map;
//set节点
private Set set;
//Properties:配置属性,props节点
private Properties props;
public Object[] getArr() {
return arr;
}
public void setArr(Object[] arr) {
this.arr = arr;
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public Set getSet() {
return set;
}
public void setSet(Set set) {
this.set = set;
}
public Properties getProps() {
return props;
}
public void setProps(Properties props) {
this.props = props;
}
@Override
public String toString() {
return "CollectionBean{" +
"arr=" + Arrays.toString(arr) +
", list=" + list +
", map=" + map +
", set=" + set +
", props=" + props +
'}';
}
}
<?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">
<!--5.第5种注入方式:复杂(集合)类型注入-->
<bean name="cb2" class="com.wpq.domain.CollectionBean">
<property name="arr">
<array>
<value>李师师</value>
<value>柳如是</value>
<value>苍老师</value>
</array>
</property>
</bean>
<bean name="cb3" class="com.wpq.domain.CollectionBean">
<property name="list">
<list>
<value>大乔</value>
<value>小乔</value>
<value>金莲</value>
</list>
</property>
</bean>
<bean name="cb4" class="com.wpq.domain.CollectionBean">
<property name="map">
<map>
<entry key="name" value="三胖"/>
<entry key="age" value="30"/>
<entry key="job" value="boss"/>
</map>
</property>
</bean>
<bean name="cb5" class="com.wpq.domain.CollectionBean">
<property name="set">
<set>
<value>大乔</value>
<value>小乔</value>
<value>金莲</value>
</set>
</property>
</bean>
<bean name="cb6" class="com.wpq.domain.CollectionBean">
<property name="props">
<props>
<prop key="url">jdbc:mysql://localhost:3306/db01</prop>
<prop key="driver">com.jdbc.mysql.Driver</prop>
<prop key="username">root</prop>
<prop key="password">root</prop>
</props>
</property>
</bean>
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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">
<!--1.在XML文件中引入Context的约束-->
<!--2.配置组件扫描器:去指定的包里面扫描要创建的对象-->
<context:component-scan base-package="com.wpq.domain,com.wpq.web,com.wpq.service,com.wpq.dao"/>
</beans>
实现步骤: 1. 创建conf.properties配置文件(age=11,name=wpq)
2. XML中配置property-placeholder加载配置文件
<!--用来去某个指定的位置下,加载指定名称的配置文件-->
<!--会把这个properties文件转换为一个Properties类-->
<context:property-placeholder location="classpath:conf.properties"/>
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!