1.通过构造函数注入值
beans.xml
对象类中要声明构造函数
public Employee(String name){System.out.println("Employee(String name)函数被调用..");this.name = name;}public Employee(){System.out.println("Employee()函数被调用..");}public Employee(String name,int age) {System.out.println("Employee(String name, intage) 函数被调用..");this.name = name;this.age = age;}注:spring会根据构造参数的个数自动选择构造函数
2.通过属性值
3.自动装配
(1) byName的用法:
原理图:
(2) byType:byType:寻找和属性类型相同的bean,找不到,装不上,找到多个抛异常。
(3) constructor:
说明 : 查找和bean的构造参数一致的一个或
多个bean,若找不到或找到多个,抛异常。按照参数的类型装配
(4) autodetect
说明 :
(3)和(2)之间选一个方式。不确定
性的处理与(3)和(2)一致。
(5) defualt
这个需要在
当你在
如果没有在
defualt-autorwire=”no”
(6) no: 不自动装配
二、使用spring的特殊bean,(包括bean生命周期中的接口)
1.分散bean
(1)类对象
DBUtils
public class DBUtils {
private String url;
private String name;
private String password;
private String drivername;
(2)db.properties属性文件
name=ru
password=123456
url=jdbc:oracle:thin:@127.0.0.1:1521:hsp
drivername=oracle\:jdbc\:driver\:OracleDirver
(3)bean.xml
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
2.这些在bean生命周器可能用到
四。使用注解方式注入属性值
1.
如果不实用注解方式的话可以这样
2.
3.在employeeService类中,使用
在EmployeeService 的属性sessionFactory上面添加一个注解@Resource,这样就是使用byName的方式自动注入