Spring是Bean的管理容器,使得开发者摆脱了new对象,管理对象的麻烦
(觉得Spring也没方便多少),web应用里可以有多个Bean容器。
所以引用别人的类,只要在xml文件里写好bean就行了。
Spring在idea只要创建Spring项目就会自动下载好,很赞。
bean的实例化有以下3种:
静态工厂初始化(关于静态工厂在Spring的使用)
首先是写好静态工厂
package 创建工厂;
package 创建工厂;
/**
* Created by Administrator on 2018/10/4.
* 汽车类
*/
public class car {
private String name;
public car(String name){
this.name=name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package 创建工厂;
/**
* Created by Administrator on 2018/10/4.
*/
public class carFactory {
public static car getCar(String name){
return new car(name);
}
}
接下来是编写xml文件,这里命名为beans.xml
<?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">
<bean id="aPerson" class="person">
<property name="name" value="xiaoyue"/>
<property name="age" value="25"/>
</bean>
<!--静态工厂方法创建Bean-->
<bean id="aCar" class="创建工厂.carFactory" factory-method="getCar">
<!-getCar里的参数在这里指定-->
<constructor-arg value="宝马"/>
</bean>
</beans>
测试类
package 创建工厂;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* Created by Administrator on 2018/10/4.
*/
public class test {
public static void main(String[] args){
ApplicationContext apc=new ClassPathXmlApplicationContext("beans.xml");
car c= (car) apc.getBean("aCar");
System.out.println(c.getName());
}
}
运行结果
可以看到已经bean创建了car对象
接下来是实例化工厂方法,下面是xml配置
<!--实例化工厂创建Bean-->
<!--首先,创建实例工厂对象-->
<bean id="instanceFactory" class="创建工厂.instanceFactory"></bean>
<!--然后就可以使用instanceFactory创建car对象-->
<bean id="instanceCar" factory-bean="instanceFactory" factory-method="getCar">
<constructor-arg value="奔驰"/>
</bean>
测试一下
//实例化工厂
car c=(car)apc.getBean("instanceCar");
System.out.println(c.getName());
结果如下
可以看到正确运行
当然正常的类也可以通过在xml中配置,这里就不多说了,最上面代码有