Spring容器

 Spring中容器
1,BeanFactory
    BeanFactory是Spring中提供的最简单,最基本的容器;这个容器只提供了IoC/DI的功能;

2,ApplicationContext: 也是一个接口, 继承了BeanFactory, ApplicationContext容器功能更加全面
    * expression: Spring实现的EL表达式, 允许在配置文件中使用EL表达式,但是一般不会这么用
    * context


对比:
BeanFactory:
    1,容器启动的时候不会实例化对象
ApplicationContext:
    1,容器启动的时候会实例化对象,
        可以通过在bean标签的 `lazy-init`属性可以让容器不会去实例化
        也可以在beans中添加属性`default-lazy-init`


scope标签:

默认情况下,每一个配置在bean中的对象都是单例的, 如果想让它不是单例的:
    在bean的标签中添加一个属性`scope`, 可以限定bean对象的生命作用域
    取值:
        1)singleton: 单例,默认值
            Spring 容器默认启动的时候会创建一个对象
        2)prototype: 原型(模式, 当每一次获取每个对象的时候都是获取的这个对象的镜像),线程安全
            Spring 容器默认启动的时候不会实例化该对象, 只有用的时候才去实例化
            当创建对象之后Spring容器也就不会去管理这个对象, 需要我们自己实现bean的销毁的方法

 

给字段赋值:

1、直接在xml里面给字段赋值

1  <!-- 将上面的BeanFactory工厂导入进这个IoC里面 -->
2     <bean id="DIBean" class="com.gxxy.spring.test.kp03.HelloDIBean" >
3         <property name="name" value="范剑波"></property>
4         <property name="age" value="16"></property>
5         <property name="fees" value="565.0"></property>
6         <property name="bean" ref="bean1"></property>

2、使用构造器来给字段赋值:

①直接赋值:

②使用下标赋值:

③使用类型赋值:

④使用字段名赋值:

 1  <bean id="constrstorBean" class="com.gxxy.spring.test.kp04_constrstor.HelloDIBean" >
 2         <!-- 直接赋值 -->
 3         <constructor-arg value="jjjj"></constructor-arg>
 4         <constructor-arg value="12"></constructor-arg>
 5         <constructor-arg value="23.0"></constructor-arg>
 6         <!-- 使用下表赋值
 7         <constructor-arg value="12" index="1"></constructor-arg>
 8         <constructor-arg value="jjjj" index="0"></constructor-arg>
 9         <constructor-arg value="23.0" index="2"></constructor-arg> -->
10         <!-- 使用类型赋值
11         <constructor-arg value="12" type="Integer"></constructor-arg>
12         <constructor-arg value="jjjj" type="String"></constructor-arg>
13         <constructor-arg value="23.0" type="Double"></constructor-arg> -->
14         <!-- 使用字段名赋值
15         <constructor-arg value="12" name="age"></constructor-arg>
16         <constructor-arg value="jjjj" name="name"></constructor-arg>
17         <constructor-arg value="23.0" name="fees"></constructor-arg> -->
18     </bean>

注意:使用构造器来赋值,在类里面必须要有相应的构造器,同时还要有无参构造器,避免javaBean规范带来的错误

 

转载于:https://www.cnblogs.com/nice6/p/6637036.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值