1. 程式人生 > >Spring初學日記(一)

Spring初學日記(一)

此專案可以執行,在後面網址我會將專案與所需jar包釋出。

定義Category類Category.java:

package com.how2java.pojo;
 
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;
}

定義applicationContext.xml

此檔案中name屬性被注入了category 1字串,id屬性被注入了12.這就是依賴注入。

DI 依賴注入 Dependency Inject. 簡單地說就是拿到的物件的屬性,已經被注入好相關值了,直接使用即可

<?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 1" />
        <property name="id" value="12"/>
    </bean>
 
</beans>

定義測試TestSpring.java:

傳統上我們用new來建立一個物件,在這裡物件的IOC由Spring來管理,直接從Spring那裡獲取一個物件。

IOC是反轉控制 (Inversion Of Control)的縮寫,就像控制權從本來在自己手裡,交給了Spring。

package com.how2java.test;

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

import com.how2java.pojo.Category;

public class TestSpring {

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

		Category c = (Category) context.getBean("c");

		System.out.println(c.getId());
		System.out.println(c.getName());
	}
}

傳統的建立物件方法:

public static void main(String[] args) {

		Category c = new Category();
		c.setName("category 1");
		c.setId(12);
		System.out.println(c.getId());
		System.out.println(c.getName());
}

加入所需要的包即可執行,能看到輸出介面為:

12
category 1