SpringIoC
一).Spring配置
1.加入jar包
2.加入xml文件;默认为applicationContext.xml
bean标签属性:
depends-on="另一个bean标签的id":依赖关系;创建此bean实例之前先会创建depends-on中所写id指定的bean对象。
scope=:prototype原型模式;缺省默认为单例模式singleton
destroy-method=:Spring容器关闭时,调用此方法销毁bean实例。且此属性只在singleton单例模式生效。
init-method=:初始化方法。
beans标签属性:
default-init-method=和default-destroy-method=:指定下面所有bean实例的初始化方法和销毁方法。
二).Spring可以通过配置文件为bean注入多种类型的属性, MessageBean类用于演示Spring的多种类型数据的注入方式, 这些类型数据和注入方式包括:
一. 注入基本值。
二. 注入Bean对象。
new ClassPathXmlApplicationContext("xm文件名:applicationContext.xml").getBean("<bean>的id")
1、无参方法
1). 用构造器来实例化的方式配置代码
<!--id:指定唯一标示; class:包名-->
<bean id="" class=""></bean>
2). 使用静态工厂的方法实例化
<!-- id:为唯一标示; class=包名 ; facroy-method:创建bean对象的静态工厂方法-->
<bane id="" class= "" factory-method=""></bean>
3). 使用实例工厂方法实例化
<!--第一个bean标签创建作为工厂的对象;第二个bean标签中 factory-bean:指定实例工厂; factory-method:指定工厂方法-->
<bean id="" class="" ></bean>
<bean id="" factory-bean="" factory-method=""></bean>
2、setter注入属性的方式创建bean实例
<!--子标签property中name为bean对象的属性的变量名;value为要给的值-->
<bean id="" class="">
<property name="" value=""></property>
<property name="" value=""></property>
....................
</bean>
3、构造方法参数注入
<bean id="bean1" .............>
.........
</bean>
<!--创建下面的bean用构造方法,但是有参数,参数类型正好是另一个bean实例-->
<bean id="" class="">
<constructor-arg name="参数的变量名" ref="bean1"/>
</bean>
attention : 构造方法中写 “this.变量名=变量名”不能反过来写,否则会报空指针异常
4、自动装配
<!-- autowire属性byType,byName,constructor,autodetect
attention : 若选择byType,参数类型也可以是父类,接口类型-->
<bean id="" class="" autowire=""></bean>
三. 直接集合注入。
四. 引用方式集合注入
五. 注入Spring表达式值。
六. 注入null或空字符串。