Spring 使用注解装配Bean

  1. 云栖社区>
  2. 博客>
  3. 正文

Spring 使用注解装配Bean

龙盛国际 2016-01-08 23:14:00 浏览705
展开阅读全文

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.运行程序

网友评论

登录后评论
0/500
评论
龙盛国际
+ 关注