【java開發系列】—— spring簡單入門示例

回顧

  1 JDK安裝html

  2 Struts2簡單入門示例spring

前言編程

  做爲入門級的記錄帖,沒有過多的技術含量,簡單的搭建配置框架而已。此次講到spring,這個應該是SSH中的重量級框架,它主要包含兩個內容:控制反轉\依賴注入,和AOP面向切面編程。微信

  1 控制反轉IOC\依賴注入DI,由於翻譯的不一樣,所以有兩個名字。

  控制反轉意思就是說,當咱們調用一個方法或者類時,再也不有咱們主動去建立這個類的對象,控制權交給別人(spring)。框架

  依賴注入意思就是說,spring主動建立被調用類的對象,而後把這個對象注入到咱們本身的類中,使得咱們可使用它。函數

  

  舉個簡單的例子,程序猿加班了一個月,很累,想要放鬆下,因而去找人吃「麻辣燙」。this

  不使用spring的傳統作法是,咱們本身經過陌陌微信等神器,主動尋找目標,花費大量人力物力,達成協議後,申請「場所」辦正事。編碼

  而使用spring的作法就很方便了,咱們直接去某個場所,那個地方直接就有目標候着!spa

  這是多麼神奇的功能啊!翻譯

 

(此圖涉及暴力,18歲如下自行負責)  

  2 AOP面向切面編程

  咱們把一個方法看作是一個切面,在這個切面的先後或者周圍,均可以設置其餘的處理方法,進行一些特殊的處理。

  好比一個「吃蛋糕」的方法,在這個方法前須要「拆包裝」,方法後須要「打掃衛生」,均可以經過這種編程方式來實現。

 

  那麼下面看下它的編碼過程!

  1 首先咱們須要一個bean,用某種方法(設置注入須要有setter函數,構造注入須要有構造函數,相應的bean.xml配置文件也會不一樣)設定注入方式。

  2 bean.xml,設置bean與類的關係,並關聯默認的注入值。

  3 獲取bean.xml文件,建立實例對象,直接調用方法。

  能夠看到,咱們開發的程序只有第三步的「建立實例對象,直接調用方法」,並無爲他進行初始化等工做,就能夠直接調用它的方法,獲取它的值。其實spring在程序初始化的時候,就會爲咱們把bean對應的對象注入進來,幫助咱們完成初始化,所以咱們只要經過一個引用對象,就能夠直接調用了。

 

  最後咱們寫一個簡單的依賴注入的小樣例!

  1 須要的jar包和文件結構

  jar包下載地址:http://pan.baidu.com/s/1sjDbzrR

  

  2 bean.xml配置文件,放在src目錄下

 

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 3     xmlns="http://www.springframework.org/schema/beans"
 4     xsi:schemaLocation="http://www.springframework.org/schema/beans
 5     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 6     <bean id="person" class="com.test.bean.Person">
 7         <property name="name" value="xingoo"/>
 8         <property name="age" value="12"/>
 9     </bean>
10 </beans>

 

  3 Person類,這裏使用的是set設置注入方式

package com.test.bean;

public class Person {
    
    private String name;
    private int age;
    
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void info(){
        System.out.println("一塊兒來吃麻辣燙!");
        System.out.println("name:"+getName()+" age:"+getAge());
    }
}

  4 test類

package testSpring;

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

import com.test.bean.Person;

public class test {
    public static void main(String[] args){
        ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");//讀取bean.xml中的內容
        Person p = ctx.getBean("person",Person.class);//建立bean的引用對象
        p.info();
    }
}

  5 執行結果

相關文章
相關標籤/搜索