接着上面的博客,这次讲讲spring Ioc中的一些具体XML的实现方法
inverse of control = 控制反转
dependency injection = 依赖注入
Spring Ioc帮我们创建对象,帮我们组织和装配对象
5.自动装配
autowire :byName,byType (在bean中设计装配方法,一般工作中用byName比较多)
default-autowire(在beans中设计,是全局默认的装配方法)
6.注入方式:
1).setter方式注入 property(可以使用自动装配)
2).构造方法注入 constructor-arg(不能使用自动装配
,只能使用配置参数的这种方式:如:<constructor-arg name="dao" ref="mydao"></constructor-arg>)
7.不同属性的注入方式,只做了解
简单属性注入:int,String,float
集合属性注入:Map,List,Set
8.单实例与多实例
scope = singleton,prototype,request,session,global session
scope默认是singleton(我们工作中一般也是用的singleton) 单例,prototype 原型,模板
下面举两个例子来说明scopee分别适用于singleton和prototype
比较两个类的区别
class Student
{
private int age;
public void setAge(int age)
{
this.age=age;
}
public void show()
{
System.out.println(age);
}
}
class StudentDAO
{
public void save(Student student)
{
......
}
}
scope适用于prototype(因为类中带有具体的属性age,年龄是要变化的,不能只是一个具体的对象)
Student zhang=new Student();
zhang.setAge(20);
Student lee=new Student();
lee.setAge(18);
scope适用于singleton(类中没有具体的属性,所以适用于singleton)
StudentDAO dao1=new StudentDAO();
dao1.save();
StudentDAO dao2=new StudentDAO();
dao2.save();
9.延时加载(只做了解,工作中一般也用不到)
lazy-init 容器加载时不初始化(初始化时有些容器不需加载,用到的时候
再加载,这样初始化的时候可以节省很多初始化加载的时间)
default-lazy-init
10.初始化方法和销毁方法
init-method (初始化的时候会调用此方法)和(在此方法中输出语句,一般都看的到输出结果)
destroy-method(结束的时候会调用此方法)(在此方法中输出语句,一般都看不到输出结果)