Spring学习记录(二)

在spring中,我们通过xml文件配置bean,例子:


id是我们在获取的时候需要的名字,相当于为bean取了个别名 class是我们的完整类名

p:name是我们的bean中的成员变量,并为其赋值

我们在创建bean的实例后,如果需要使用就需要用到ClassPathXmlApplicationContext实例化,然后才能获取并使用。

	ClassPathXmlApplicationContext ac =new ClassPathXmlApplicationContext("applicationContext.xml");

如上图所示,然后调取getBean()方法获取获取bean


接下来就是依赖注入了,首先是属性注入:



就是属性注入。name="name" 就是我们的name成员变量,赋值world

然后我们在main方法调用一下看一下,我们这里是重写了toString()方法的。结果:

public static void main(String[] args) {
		ApplicationContext ac =new ClassPathXmlApplicationContext("applicationContext.xml");
		HelloWorld hw=(HelloWorld) ac.getBean("helloWorld");
		System.out.println(hw);
	}

结果:

HelloWorld [name=world]

我们已经把name的值赋值world了

接下来是构造器注入,首先我们看下我们的HelloWorld类:

package com.fei.HelloOne;

public class HelloWorld {
	public HelloWorld(String name) {
		this.name = name;
	
	}
	
	public HelloWorld() {
	
	}
	private String name;
	

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String toString() {
		return "HelloWorld [name=" + name + "]";
	}
	public void printHelloWorld() {
		System.out.println("helloworld");
	}

}

我们有个有参数的构造器,传入name,看我们的构造器传入:



我们给name赋值
value="陈邯郸"

然后我们看打印结果:

HelloWorld [name=陈邯郸]

属性注入成功!

但有时候需要几个bean配合使用,我们来看个例子,有两个bean

car:

package com.fei.HelloOne;

public class Car {

	private String pinpai;
	private Double price;
	
	
	public void Car(String pinpai,Double price) {
		this.pinpai=pinpai;
		this.price = price;
	}
	public void Car() {
		
	}
	public String getPinpai() {
		return pinpai;
	}
	public void setPinpai(String pinpai) {
		this.pinpai = pinpai;
	}
	public Double getPrice() {
		return price;
	}
	public void setPrice(Double price) {
		this.price = price;
	}
	@Override
	public String toString() {
		return "Car [pinpai=" + pinpai + ", price=" + price + "]";
	}
	
}

Person:

package com.fei.HelloOne;

public class Person {
	private String name;
	private Car car;
	private String say;
	public String getSay() {
		return say;
	}
	public void setSay(String say) {
		this.say = say;
	}
	
	@Override
	public String toString() {
		return "Person [name=" + name + ", car=" + car + ", say=" + say + "]";
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Car getCar() {
		return car;
	}
	public void setCar(Car car) {
		this.car = car;
	}

}

Person bean中有个Car类,这时候我们怎么给Car类赋值呢?

首先我们配置Car bean:





然后,我们看Person怎么配置:





然后,我们测试一下:

ApplicationContext ac =new ClassPathXmlApplicationContext("applicationContext.xml");
		Person person = (Person) ac.getBean("person1");
		System.out.println(person);

结果:

Person [name=菲菲, car=Car [pinpai=byd, price=23333.0], say=还阔以]
所以,我们的bean中有其他bean可以用ref来关联赋值,其他赋值还有List,Map,set等其他赋值,有兴趣可以自己了解下

你可能感兴趣的:(JAVA,Spring,JAVA框架)