Spring可以使用xml配置文件来装配bean,也可以使用注解来装配Bean
1.在上一篇文章的基础上在com.springtest包中新建Tire类,源码为:
package com.springtest; public class Tire { privatedouble price; privateString brand; publicString getBrand() { returnbrand; } publicvoid setBrand(String brand) { this.brand= brand; } publicdouble getPrice() { returnprice; } publicvoid setPrice(double price) { this.price= price; } }
2.新建Car类,源码为
package com.springtest; import javax.annotation.Resource; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.beans.factory.annotation.Value; class Car { @Autowired privateTire tire; @Value("8000") privatedouble distance; privatePerson owner; publicCar(){} publicCar (Tire tire,double distance,Person owner){ this.tire= tire; this.distance= distance; this.owner= owner; } // publicTire getTire() { // returntire; // } // @Autowired // publicvoid setTire(Tire tire) { // this.tire= tire; // } publicdouble getDistance() { returndistance; } publicvoid setDistance(double distance) { this.distance= distance; } publicPerson getOwner() { returnowner; } @Autowired publicvoid setOwner(Person owner) { this.owner= owner; } publicvoid display(){ Stringmessage = "this car's tire is"+this.tire.getBrand()+";it'sdistance is"+this.distance+";it's owner is "+this.owner.getName(); System.out.print(message); } }
3.在src目录下新建springAnnotation.xml配置文件,源码为:
<?xml version="1.0"encoding="UTF-8"?> <beansxmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd "> <!--使用基于注解的方法自动装配 --> <context:annotation-config/> <!--通过属性注入的方式 --> <bean id="tire" class="com.springtest.Tire"> <property name="price" value="1000"/> <property name="brand" value="长城"></property> </bean> <!--通过构造器注入 --> <beanid="person" class="com.springtest.Person"> <constructor-arg value="jade yoon"/> <constructor-arg value="25"/> </bean> <!-- 注入list --> <bean id="car" class = "com.springtest.Car"> <property name ="distance" value="10000000" /> </bean> </beans>
4.MainApp文件的源码改为:
package com.springtest; importorg.springframework.context.ApplicationContext; importorg.springframework.context.support.ClassPathXmlApplicationContext; public class MainApp { publicstatic void main(String[] args) { // //TODO Auto-generated method stub // ApplicationContextctx = new ClassPathXmlApplicationContext("bean.xml"); // // Personperson1 = (Person)ctx.getBean("person"); // person1.sayHello(); // // Studentstudent1 = (Student)ctx.getBean("student"); // student1.display(); //TODO Auto-generated method stub ApplicationContextctx = new ClassPathXmlApplicationContext("springAnnotation.xml"); CarpCar = (Car)ctx.getBean("car"); pCar.display(); } }
5.运行程序