1.配置bean的作用域:

  通过配置scope属性可以bean的作用域,参数有 prototype、request、session、singleton。

    1)singleton为单例,IoC容器只会创建一个实例,并在IoC容器实例化的时候,bean就已经被创建了。

    2)property为每次实例bean的时候,都会实例化一个新的bean,IoC实例化的时候,bean不会被创建。bean在加载的时候才会创建

<bean id="baoma" class="com.myspring.level2.demo.Car" scope="prototype">

2.使用外部属性文件:

  想要使用外部文件,必须先引入context的命名空间,在添加的上<context:property-placeholder location="classpath:...">标签,location里写外部文件的路径。通过${属性名}就可以访问到该变量,比如在外部文件zpd.property里写入name=xxxxxxx;想要访问这个name,如下:

    <context:property-placeholder location="classpath:zpd.property"/>
<bean id="baoma" class="com.myspring.level2.demo.Car" scope="prototype">
<property name="name" value="${name}"></property>
<property name="brand" value="BMW"></property>
</bean>

3.SpEL:

  SpEL是Spring表达式语言,是一个支持运行时查询和操作对象图的强大的表达式语言。语法类似于EL:SpEL使用#{..}作为定界符,所有在大括号中的字符都将被认为是SpEL

SpEL为bean的属性进行 动态赋值 提供了便利。value=#{classid},引用其他对象的属性,支持正则,可以调用静态方法。

4.IoC容器的bean的生命周期:

  在bean中声明init-method、destory-method属性的方法。

<bean id="baoma" class="com.myspring.level2.demo.Car" init-method="init" destroy-method="destooy">

  实现BeanPostProcessor接口,来配置bean的后置处理器。postProcessBeforeInitialization(init-method之前被调用)\postProcessAfterInitialization(init-method之后被调用)

public class MyBeanPostProcess implements BeanPostProcessor
{
@Override
public Object postProcessAfterInitialization(Object arg0, String arg1) throws BeansException
{
System.out.println("你好啊");
return arg0;
}
@Override
public Object postProcessBeforeInitialization(Object arg0, String arg1) throws BeansException
{
System.out.println("再见啦");
return arg0;
} }

  在bean中实例化该bean:

<bean class="com.myspring.level2.demo.MyBeanPostProcess"></bean>

5.通过工厂方法配置Bean:

  通过静态工厂方法配置bean:   直接调用一个类的静态方法就可以返回bean的实例,bean属性factory-method。

  通过实例工厂方法配置bean:   通过实例工厂方法配置bean。

6.FactoryBean:

 略

Spring入门第二课:Spring配置Bean的细节的更多相关文章

  1. Spring入门第二课

    看代码 package logan.spring.study; public class HelloWorld { private String name; public void setName2( ...

  2. Spring入门2. IoC中装配Bean

    Spring入门2. IoC中装配Bean 20131125 前言: 上一节学习了Spring在JavaProject中的配置,通过配置文件利用BeanFactory和ApplicationConte ...

  3. Spring入门(4)-注入Bean属性

    Spring入门(4)-注入Bean属性 本文介绍如何注入Bean属性,包括简单属性.引用.内部Bean.注入集合等. 0. 目录 注入简单值 注入引用 注入内部Bean 装配集合 装配空值 使用命名 ...

  4. 跟着刚哥学习Spring框架--通过注解方式配置Bean(四)

    组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Resposit ...

  5. 跟着刚哥学习Spring框架--通过XML方式配置Bean(三)

    Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式   √ id:标识容器中的bean.id唯一. √ cl ...

  6. Hibernate入门第二课 Hibernate Tools for Eclipse Plugins安装

    Hibernate入门第二课 Hibernate Tools for Eclipse Plugins安装 你们可以直接去,http://blog.csdn.net/wei_chong_chong/ar ...

  7. 数据结构入门第二课(浙大mooc)

    数据结构入门第二课 目录 数据结构入门第二课 引子 多项式的表示 方法1 顺序结构表示多项式各项 方法2 顺序结构表示非零项 方法3 链表结构存储非零项 多项式问题的启示 线性表 线性表的抽象数据类型 ...

  8. Spring入门第一课:Spring基础与配置Bean

    1.入门 Spring是简化java开发的一个框架,其中IoC和AOP是Spring的两个重要核心.由于Spring是非侵入性的,通过Ioc容器来管理bean的生命周期,还整合了许多其他的优秀框架,所 ...

  9. Spring入门(二):自动化装配bean

    Spring从两个角度来实现自动化装配: 组件扫描(component scanning):Spring会自动发现应用上下文中需要创建的bean. 自动装配(autowiring):Spring会自动 ...

随机推荐

  1. csharp: Getting all image files in folder

    /// <summary> /// /// </summary> /// <param name="sender"></param> ...

  2. sql:function

    --查询权限函数 --1 declare @names varchar(3000) set @names='' select @names=@names+isnull(AdminPermissForm ...

  3. 记录开发Nodejs c++ addon的一些经验(四、electron)

    如果我们要在electron里使用我们开发的addon,那么直接使用是不行的. 官方的解释是:Electron 同样也支持原生模块,但由于和官方的 Node 相比使用了不同的 V8 引擎,如果你想编译 ...

  4. 视差滚动-background-attachement

    之前项目中没有涉及到视觉滚动的网站,但是毕竟是一种常用的网站类别,不得不了解.实现方法很简单,做一下简单的分析... 概述:滚动视差是指多层背景以不同的速度移动,形成立体的运动效果,来带非常出色的视觉 ...

  5. xml文件读取到数据库

    xml文件读取到数据库   第一步,导包 c3p0,dom4j,jaxen,MySQL-connector 第二步  xml文件,config文件 第三步 javabean 第四步 c3p0的工具类 ...

  6. MySQL数据库(3)----设置和使用自定义变量

    MySQL支持定义自己的变量.这些变量可以被设置为查询结果,这使我们可以方便地把一些值存储起来供今后查询使用. ; +-----------------+ | @HisName:= name | +- ...

  7. git 命令备忘

    git 常用命令备忘 仅作为日常使用备忘,并非常用命名整理 删除源端分支 git push orgin --delete branch_a a分支某次提交应用到b分支 切换到branch_b 分支: ...

  8. mobile webiste 中的css的font-size em及line-height等换算

    在mobile web设计 中,我们常常需要使用em这个字体大小的单位.em到底是多少呢? em到底应该设置为多少个em呢?通常换算成方法是1em=target fontsize we want/fo ...

  9. dbms_stats应用相关

    Q:     DBMS_STATS.GATHER_SCHEMA_STATS ('schema_name');        使用这个收集统计信息,estimate_percent使用默认值       ...

  10. June 25th 2017 Week 26th Sunday

    There is always that one song that brings back old memories. 总有那么一首歌,让你想起那些旧的回忆. There are seveal so ...