1.Spring的IOC理解。
2.编写Spring的程序:
1)引入Spring相关的jar包。(可以从官网下载,下载之后将lib下的jar包拷贝到项目中,《推荐使用》另外一种方式是通过myeclipse去完成…..)
2)编写applicationContext.xml配置文件(将java的对象注入到IOC容器里)。比如:
<?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-3.1.xsd">
<bean id="womanbean" class="com.gxa.bj.pojo.Woman">
<property name="name" value="张美丽"></property>
</bean>
</beans>
3.)调用Spring相应的程序处理:
ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext.xml");
Woman woman = appContext.getBean("womanbean", Woman.class);
System.out.println("通过IOC找到的这个美女的名字:"+woman.getName());
3.在Spring中如何注入一个对象?
分类:
1)set注入(属性注入)。(无参构造函数)
<bean id="womanbean" class="com.gxa.bj.pojo.Woman">
<property name="name" value="张美丽"></property>
<property name="age" value="23"></property>
<property name="womanType" value="身材高挑"></property>
</bean>
2)构造函数的注入:
<bean id="fanbingbing" class="com.gxa.bj.pojo.Woman">
<constructor-arg value="28" name="_age" >
</constructor-arg>
<constructor-arg value="范冰冰" name="_name" type="java.lang.String">
</constructor-arg>
<constructor-arg value="性感" name="_womanType" type="java.lang.String"></constructor-arg>
</bean>
4.默认情况下,每个bean对象都是单例模式(表示该bean对象是不是在内存中只存在一个)。要改变每个bean对象不为单例模式,只需要改变bean对象的Scope属性值不为scope="singleton"
5.自动装配(自动匹配Spring里的bean对象):
比如:bean里的有个属性名:private Woman fanbingbing;
而Spring里的bean对象的名字也叫:fanbingbing;
<bean id="fanbingbing" class="com.gxa.bj.pojo.Woman">
<constructor-arg value="28" name="_age" >
</constructor-arg>
<constructor-arg value="范冰冰" name="_name" type="java.lang.String">
</constructor-arg>
<constructor-arg value="性感" name="_womanType" type="java.lang.String"></constructor-arg>
</bean>
<bean id="man" class="com.gxa.bj.pojo.Man" autowire="byName">
<property name="name" value="李晨"></property>
</bean>
设置的这个装配类型为通过属性名自动装配:autowire="byName"
建议:一般情况下不要开启自动匹配。引用的方式:ref所针对的是bean里的id名字:
<bean id="fanbingbing" class="com.gxa.bj.pojo.Woman">
<constructor-arg value="28" name="_age" >
</constructor-arg>
<constructor-arg value="范冰冰" name="_name" type="java.lang.String">
</constructor-arg>
<constructor-arg value="性感" name="_womanType" type="java.lang.String"></constructor-arg>
</bean>
<bean id="man" class="com.gxa.bj.pojo.Man">
<property name="name" value="李晨"></property>
<property name="fanbingbing" ref="fanbingbing"></property>
</bean>