XML 通过普通构造方法注入 Bean
1. 创建简单 Java 类
User(属性:name-String, age-int,getter方法和setter方法,无参构造方法[可加入打印信息],sayHello方法)
package org.daistudy;
public class User {
private String name;
private int age;
public User() {
System.out.println("调用User类的无参构造方法");
}
public void sayHello(String name){
System.out.println("hello, " + name + "!");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
2. 在 Spring 配置文件中声明 Bean
在 Spring 配置文件中声明 User Bean 之后,Spring 的 IoC 容器将根据 class 属性并通过反射(默认使用无参构造方法)来创建名称为指定 id 的 User 对象
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="user" class="org.daistudy.User"/>
</beans>
3. 初始化 Spring 的 IoC 容器并获取 Bean
此时 Spring 会自动加载配置文件,并根据配置文件中的内容初始化 Bean,最后通过 Spring 上下文获取 Bean
public class Main {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) context.getBean("user");
user.sayHello("Spring");
}
}
4. 注意
- context.getBean()方法可以通过 bean 的名称获取,也可以通过 bean 的类型获取,当使用后一种方法时,同类型的 bean 不能多余1个
- xml 配置 bean 时,可以设置 id 或 name 属性指定 bean 的名称,一般情况下,两者没有区别,特殊情况:
- id="user1,user2"==> bean 的名称为 "user1,user2"
- name="user1,user2"==> bean 的名称为 user1或user2
网友评论