JavaEE中Spring配置Bean的四种方法

记得导入spring相关jar包

src下bean.xml配置如下

<?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 name="a1" class="com.edu.bean.Address">
		<constructor-arg index="0" type="java.lang.String" value="北京"/>
		<constructor-arg index="1" type="java.lang.String" value="清华"/>
	</bean>
	
	<!-- 第二种,利用无参构造器注入,格式如下 -->
	<bean name="a2" class="com.edu.bean.Address"/>

	<!-- 第三种,利用属性的setter方法注入,其格式如下 -->
	<bean name="a3" class="com.edu.bean.Address">
		<property name="city" value="济南"></property>
		<property name="school" value="山大"></property>
	</bean>	
	
	<!-- 第四种,利用属性的setter方法注入引用属性,其格式如下 -->
	<bean name="addr" class="com.edu.bean.Address">
		<property name="city" value="山东泰安"></property>
		<property name="school" value="山东农业大学"></property>
	</bean>	
	<bean name="ss" class="com.edu.bean.Students">
		<property name="name" value="张三"></property>
		<property name="age" value="20"></property>
		<property name="address" ref="addr"></property>
	</bean>	
</beans>
	

Address类

package com.edu.bean;

public class Address {
	private String city;
	private String school;
	
	public Address() {
		super();
		this.city="泰安";
		this.school="农大";
	}

	public Address(String city, String school) {
		super();
		this.city = city;
		this.school = school;
	}

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}

	public String getSchool() {
		return school;
	}

	public void setSchool(String school) {
		this.school = school;
	}
	
	public String toString(){
		return "city:"+this.city+"school:"+this.school;
	}
}

Students类

package com.edu.bean;

public class Students {
	private String name;
	private int age;
	Address address;
	public Students(String name, int age, Address address) {
		super();
		this.name = name;
		this.age = age;
		this.address = address;
	}
	public Students() {
		super();
	}
	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;
	}
	public Address getAddress() {
		return address;
	}
	public void setAddress(Address address) {
		this.address = address;
	}
	
}

测试类

package com.edu.bean;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ApplicationContext act=new ClassPathXmlApplicationContext("bean.xml");
		Address address;
		address=(Address)act.getBean("a1");
		System.out.println("city:"+address.getCity()+"school:"+address.getSchool());
		address=(Address)act.getBean("a2");
		System.out.println("city:"+address.getCity()+"school:"+address.getSchool());
		address=(Address)act.getBean("a3");
		System.out.println("city:"+address.getCity()+"school:"+address.getSchool());
		Students student;
		student=(Students)act.getBean("ss");
		//此处需要在Address类里写上toString函数,否则会出现乱码
		System.out.println("name:"+student.getName()+"age:"+student.getAge()+"city:"+student.getAddress());
	}

}

上一篇:JavaEE:MySQL主从配置


下一篇:override关键字