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


回顧

  1 JDK安裝

  2 Struts2簡單入門示例

前言

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

  1 控制反轉IOC\依賴注入DI,因為翻譯的不同,因此有兩個名字。

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

  依賴注入意思就是說,spring主動創建被調用類的對象,然后把這個對象注入到我們自己的類中,使得我們可以使用它。

  

  舉個簡單的例子,程序猿加班了一個月,很累,想要放松下,於是去找人吃“麻辣燙”。

  不使用spring的傳統做法是,我們自己通過陌陌微信等神器,主動尋找目標,花費大量人力物力,達成協議后,申請“場所”辦正事。

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

  這是多么神奇的功能啊!

 

(此圖涉及暴力,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 執行結果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM