Spring 的bean 管理(配置文件方式)

bean 实例化方式

在spring里面通过配置文件创建对象

1 bean实例化三种方式实现
第一种 使用类的无参数构造创建(重点)(写了有参数的构造函数,默认没有无参构造函数,使用这种方式,必须重新再写一个)

第二种 使用静态工厂创建
(1)创建静态的方法,返回类对象
《bean id=”bean2” class=’cn.itcast.bean.Bean2Factory” factory-method=”getBean2”》《/bean》
无需对实体类进行对象的xml配置

第三种 使用实例工厂创建
(1)创建不是静态的方法,返回类对象
1.创建工厂对象
《bean id = “bean3Facotry” class =“cn.itcast.bean.Bean3Factory”》《/bean》

《bean id=”bean2” facotry-bean = “bean3factory” factory-method =”getBean3”》《/bean》

bean 标签常用属性

(1)id属性:起名称,id属性值名称任意命名
- id属性值,不能包含特殊符号
- 根据id值得到配置对象(自动生成的对象)

(2)class属性:创建对象所在类的全路径

(3)name属性:功能和id属性一样的,id属性值不能包含特殊符号,但是在name属性值

(4)scope属性

  • singleton:默认值,单例
  • prototype:多例
  • request:创建对象把对象放到request域里面
  • session:创建对象把对象放到session域里面
  • globalSession:创建对象把对象放到globalSession里面

属性注入

1 定义:创建对象时候,向类里面属性里面设置值

2 属性注入的方式介绍(三种方式)
(1)使用set方法注入
(2)使用有参数构造注入
(3)使用接口注入

扫描二维码关注公众号,回复: 953173 查看本文章

3 在spring框架里面,支持前两种方式
(1)set方法注入(重点)
《bean id=”book” class=”cn.itcast.property.Book”》
《property name = “bookname” value=”c++”》《/property》
《/bean》
(2)有参数构造注入
《bean id=”demo” calss = “cn.itcast.property.PropertyDemo1”》
《constructor-arg name = “urername” value=”小王”》《/constructor》
《/bean》

注入对象类型属性

1 创建service类和dao类
(1)在service得到dao对象
2 具体实现过程
(1)在service里面把dao作为类型属性
(2)生成dao类型属性的set方法
(3)配置文件中注入关系
《bean id = “userDao” class =”cn.itcast.ioc.UserDao”》《/bean》
《bean id = “userService” class = “cn.itcast.ioc.UserService”》
《property name=”userDao” ref = “userDao”》《/proerty》
《/bean》

P名称空间注入

约束中添加
: xml:p=”http://…/schema/p”
《bean id=”person” class=”cn.itcast.property.Person” p:name = “小王”》《/bean》

复杂类型注入

1 数组
2 list集合
3 map集合
4 properties类型
《bean id = “person” class=”cn.itcast.prpperty.Person”》
《property name=”arrs”》
《list》
《value》小王《value》
《value》小王《value》
《value》小王《value》
《/list》
《/property》
《/bean》

IOC和DI区别

(1)IOC: 控制反转,把对象创建交给spring进行配置
(2)DI: 依赖注入,向类里面的属性中设置值
(3)关系:依赖注入不能单独存在,需要在ioc基础之上完成操作

Spring整合web项目原理

1 加载spring核心配置文件
(1)new对象,功能可以实现,效率很低

2 实现思想:把加载配置文件和创建对象过程,在服务器启动时候完成

3 实现原理
(1)ServletContext对象
(2)监听器
(3)具体使用:
- 在服务器启动时候,为每个项目创建一个ServletContext对象
- 在ServletContext对象创建时候,使用监听器可以具体到ServletContext对象在什么时候创建
- 使用监听器监听到ServletContext对象创建时候,
– 加载spring配置文件,把配置文件配置对象创建
把创建出来的对象放到ServletContext域对象里面(setAttribute方法)
- 获取对象时候,到ServletContext域得到 (getAttribute方法)

猜你喜欢

转载自blog.csdn.net/jcsyl_mshot/article/details/80383429