注解与依赖注入

1.Product

package com.how2java.pojo;

import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
import org.springframework.stereotype.*;
@Component("p")
public class Product {
    private int id;
    private String name="product 1";
 //   @Autowired
    @Resource(name="c")
    private Category category;
    public int getId(){
        return id;
    }
    public void setId(int id){
        this.id= id;
    }
    public String getName(){
        return name;
    }
    
    public void setName(String name){
        this.name=name;
    }
    public Category getCategory(){
        return category;
    }
//    @Autowired
    public void setCategory(Category category){
        this.category=category;
    }
}

2.Category

package com.how2java.pojo;

import org.springframework.stereotype.*;

@Component("c")
public class Category {
 
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    private int id;
    private String name="category 1";
}

3. applicationContext.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"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/aop 
   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
   http://www.springframework.org/schema/tx 
   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
   http://www.springframework.org/schema/context      
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">
 <context:component-scan base-package="com.how2java.pojo"/>

<!-- <context:annotation-config/>
<bean name="c" class="com.how2java.pojo.Category">
<property name="name" value="category 1" />
</bean>
<bean name="p" class="com.how2java.pojo.Product">
<property name="name" value="product1" />    
<property name="category" ref="c" />    // 从Bean库里面把 c 调出来给Product的category用,这个就是注入
</bean> -->

</beans>

4. test case

package com.how2java.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.how2java.pojo.Product;
public class Test2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        ApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml" });
        Product p = (Product) context.getBean("p");
        System.out.println(p.getName());
        System.out.println(p.getCategory().getName());
        

    }

}

--------------------------------------------方法二、分割线-------------------------------------------------------------------------------------

package com.how2java.pojo;

import org.springframework.stereotype.*;

//@Component("c")
public class Category {
 
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    private int id;
    private String name="category 1";
}



package com.how2java.pojo;

import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.Resource;
import org.springframework.stereotype.*;
//@Component("p")
public class Product {
    private int id;
    private String name="product 1";
//    @Autowired
//    @Resource(name="c")
    private Category category;
    public int getId(){
        return id;
    }
    public void setId(int id){
        this.id= id;
    }
    public String getName(){
        return name;
    }
    
    public void setName(String name){
        this.name=name;
    }
    public Category getCategory(){
        return category;
    }
//    @Autowired
    public void setCategory(Category category){
        this.category=category;
    }
}
-----------------------------.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"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="
   http://www.springframework.org/schema/beans 
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/aop 
   http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
   http://www.springframework.org/schema/tx 
   http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
   http://www.springframework.org/schema/context      
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">
 <bean name="c" class="com.how2java.pojo.Category">
        <property name="name" value="category " />
        <property name="id" value="1"/>
    </bean>

 <bean name="p" class="com.how2java.pojo.Product">
    <property name="name" value="category " />
        <property name="id" value="2" />
    </bean>
</beans>

---------------------------------test--------------------------
package com.how2java.test;

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

import com.how2java.pojo.Category;
import com.how2java.pojo.Category1;
public class TestSpring {

    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "applicationContext.xml" });

        Category ef = (Category) context.getBean("c");
        Category1 d = (Category1) context.getBean("d");
        System.out.println(ef.getName());
        System.out.println(ef.getId());
        System.out.println(d.getId());
    }
}

-------------------------------------------------------------待续-------------------------------------------------------

 

 

posted @ 2017-11-17 15:58  QualityAssurance21  阅读(276)  评论(0编辑  收藏  举报