1.Spring容器中的Bean
从本质上来看Spring容器就是一个超级大工厂,Bean就是工厂的产品,能产生哪些产品是根据我们配置文件的配置来的。对于我们开发者来说,使用Spring容器主要做两件事:1,定义自己的Bean,2配置Bean。对于Spring框架来说,它的作用就是根据配置文件创建Bean,并调用Bean的实例方法完成依赖注入——这就是所谓Ioc容器的本质。
其实Spring框架的本质就是通过XML配置来驱动Java代码,这样把原本有Java代码管理的组件之间的耦合关系,提取到了XML中。这样就方便了日后的升级和维护。
2.Bean的基本定义和Bean别名
元素是Spring容器的根元素,该元素可以指定如下属性:
default-lazy-init:指定该元素下配置的所有默认的延迟行为。
default-merge:指定该元素下配置的所有默认的merge。
default-autowirt:指定该元素下配置的所有默认的自动装配行为。
default-autowirt-candidates:指定该元素下所有默认是否是默认装配的候选Bean。
default-init-method:指定该元素下所有默认的初始化方法。
default-destroy-method:指定该元素下所有默认的回收方法。
以上这些属性也使用于元素,只不过是需要去掉default而已。如果和配置了相同的属性,那么属性将会覆盖属性,也就说说一个相当于全局变量,一个想定于局部变量。
3.Spring容器Bean的作用域
当通过Spring容器创建Bean时,不仅可以完成Bean的初始化工作,还可以为Bean指定作用域。在Bean元素添加scope属性即可配置Bean的作用域。Spring支持一下五种作用域:
1. singleton:单例模式,在整个Spring Ioc容器中,singleton作用域的Bean只会产生一个实例。
2. prototype:通过getBean()方法获取Bean实例或向其他Bean注入Bean时,Spring Ioc容器都会新new一个Bean实例作为方法返回的Bean或注入的Bean实例。
3. request:对于一次HTTP请求,request作用域只产生一个Bean实例,请求结束时Bean实