Spring 学习

一.使用正常方式

study_spring/src/applicationContext.xml

<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="Product 1" />
    <property name="category" ref="c" />
</bean>

/study_spring/src/cn/leokim/pojo/Product.java

package cn.leokim.pojo;

public class Product {
    private int id;
    private String name;
    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;
    }

    public void setCategory(Category category){
        this.category = category;
    }
}

study_spring/src/cn/leokom/test/TestSpring.java

package cn.leokim.pojo;

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

import com.how2java.pojo.Category;
import com.how2java.pojo.Product;

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

//        Category c = (Category) context.getBean("c");
        Product p = (Product) context.getBean("p");

//        System.out.println(c.getName());
        System.out.println(p.getCategory().getName());
    }
}

二.注解方式

study_spring/src/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: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="Product 1" />
<!--        <property name="category" ref="c" />-->
    </bean>

</beans>
public class Product {
    private int id;
    private String name;

//    @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;
    }

    public void setCategory(Category category){
        this.category = category;
    }
}

注解方式还可以更简单

1.applicationContext.xml去掉之前的配置,只用一行

<context:component-scan base-package="cn.leokim.pojo"/>

2.在Category上添加注解

@Component("c")
public class Category {

3.在product上添加注解

@Component("p")
public class Product {

运行出来结果是一样的