spring 创建项目-实例工厂

1.创建项目顺序:
project选择spring,download -> 确定包都add library了,没有就add ->创建配置文件 ->
在这里插入图片描述
->创建测试类(psv创建main函数或建一个函数前面@Text)

2.ClassPathXmlApplicationContext是获取类路径的配置文件,不在该项目下用FileSystem…

3.组件(类)在容器(ioc)创建好时就创建完成,创建调用的是set方法(property标签决定的),属性名(name)是set方法后面单词的小写。

4.一个bean相当于一个对象,id即为对象名

5.在这里插入图片描述
用类名和id获取bean实例(不用强转)。

6.xml配置有参构造器时,几个参数几个constructor-arg标签;可以省略name配置,按照顺序即可。

7.如果有多个有参构造器的且参数数相同会有歧义在这里插入图片描述
可以用type属性来解决

8.value属性内特殊字符输入(value子节点):
在这里插入图片描述
9.当对象含有另一个对象时,用ref属性引用已经注册过的目标bean对象的id即可(ref代替value)。

10.内部bean(只能在内部使用):
在这里插入图片描述
11.类列表:
在这里插入图片描述
12.map类型注入(还有key-ref):
在这里插入图片描述
13.p命名空间:
在这里插入图片描述
14.自动装配(autowire):

简单的属性不需要自动装配

byName:在配置文件(ioc)中寻找已经注入的,id值和类中变量名相同的组件注入。(对名字规范要求高,也有重名01情况)

byType:在ioc中寻找已经注册的,类型和目标类所需类型一致的注入(很明显有多个同属性时会报错)

15.bean的继承(parent)(注意重写覆盖):
在这里插入图片描述

16.抽象bean(abstract=“true”):无法实例化。

17.bean的依赖(depend -on):
必须依赖已经存在才能初始化。(可以用于控制bean的加载顺序,如果该bean A要用到bean B的数据,就依赖于B)
在这里插入图片描述
注意:依赖不会赋值,此处car=null

18.bean的作用域(scope):
默认是 singleton(getBean同一个id同一个对象,在ioc创建的时候就已经建好了
prototype(原型)getBean的时候再创建,每次返回新的实例)
在这里插入图片描述
19.引用外部配置文件(引入el表达式和context的命名空间),以数据库连接池为例子:

在这里插入图片描述
在这里插入图片描述

20.在这里插入图片描述
bean生命周期顺序:构造器->赋值->初始化方法->使用对象->销毁
在这里插入图片描述
destroy实现要ioc.close
完整的生命周期:
在这里插入图片描述

21.静态工厂配置bean:
在这里插入图片描述
其中给getCar传参使用constructor-arg(可以给普通方法传参)
在这里插入图片描述

22.实例工厂配置bean:
在这里插入图片描述
在这里插入图片描述
区别:
1.实例工厂是先创建了一个工厂并实例化,然后通过bean对象调用工厂里的相应方法;而静态工厂在bean容器开启的时候同样创建了一个工厂只不过是直接在其内部完成了相应的方法调用
2.
静态工厂:用于生成实例对象,所有的方法必须是static
实例工厂:必须先有工厂实例对象,通过实例对象创建对象。提供所有的方法都是“非静态”的。

23.Factorybean配置bean:

import org.springframework.beans.factory.FactoryBean;

public class text1 implements FactoryBean {
    @Override
    public Object getObject() throws Exception {
        return null;
    }

    @Override
    public Class<?> getObjectType() {
        return null;
    }

    @Override
    public boolean isSingleton() {
        return true;
    }
}

在这里插入图片描述
默认直接调用getObject返回对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值