Bean配置解释
HelloWorld:
public class HelloWorld {
public HelloWorld() {
System.out.println("HelloWorld对象被创建了!");
}
private String name;
public void setName(String name) {
System.out.println("setName()方法被调用!");
this.name = name;
}
public void sayHello() {
System.out.println("Hello:"+name);
}
<!-- 配置bean
id属性:给当前bean起一个名称,该名称必须保证是唯一的
class属性:设置bean的全类名
-->
<bean id="hellworld" class="com.learn.spring.helloworld.HelloWorld" scope="singleton">
<!-- 给属性赋值
name属性:设置bean的属性名
value属性:设置bean的属性值
-->
<property name="name" value="Spring"></property>
</bean>
获取Bean的方式
class HelloWorldTest {
@Test
void test() {
//1.创建IOC容器对象
ApplicationContext ioc = new ClassPathXmlApplicationContext("applicationContext.xml");
//2.从IOC容器中获取HelloWorld对象
HelloWorld helloworld = (HelloWorld) ioc.getBean("hellworld");
//3.调用sayHello方法
helloworld.sayHello();
/*
* 获取bean的方式
* 1.根据名称(id属性)获取
* 2.根据bean的类型获取
* -要求:IOC容器中该类型的bean是唯一的,否则会抛出异常
*/
HelloWorld helloworld2 = ioc.getBean(HelloWorld.class);
helloworld2.sayHello();
System.out.println(helloworld==helloworld2);
}
给bean的属性赋值
Employee:
public class Employee {
private Integer id;
private String lastName;
private String email;
private Department dept;
Department:
public class Department {
private Integer id;
private String name;
<!--
给bean的属性赋值的的方式:
1.通过value属性赋值
2.通过ref属性赋值
-->
<bean id="employee" class="com.learn.spring.beans.Employee">
<property name="id">
<value>1</value>
</property>
<property name="lastName" value="张三"></property>
<property name="email" value="zhangsan.com"></property>
<property name="dept" ref="department"></property>
<!-- 通过级联属性修改属性的值 -->
<property name="dept.id" value="10001"></property>
</bean>
<bean id="department" class="com.learn.spring.beans.Department">
<property name="id" value="1001"></property>
<property name="name" value="产品部"></property>
</bean>