1 JDK安裝html
2 Struts2簡單入門示例spring
前言編程
做爲入門級的記錄帖,沒有過多的技術含量,簡單的搭建配置框架而已。此次講到spring,這個應該是SSH中的重量級框架,它主要包含兩個內容:控制反轉\依賴注入,和AOP面向切面編程。微信
控制反轉意思就是說,當咱們調用一個方法或者類時,再也不有咱們主動去建立這個類的對象,控制權交給別人(spring)。框架
依賴注入意思就是說,spring主動建立被調用類的對象,而後把這個對象注入到咱們本身的類中,使得咱們可使用它。函數
舉個簡單的例子,程序猿加班了一個月,很累,想要放鬆下,因而去找人吃「麻辣燙」。this
不使用spring的傳統作法是,咱們本身經過陌陌微信等神器,主動尋找目標,花費大量人力物力,達成協議後,申請「場所」辦正事。編碼
而使用spring的作法就很方便了,咱們直接去某個場所,那個地方直接就有目標候着!spa
這是多麼神奇的功能啊!翻譯
(此圖涉及暴力,18歲如下自行負責)
咱們把一個方法看作是一個切面,在這個切面的先後或者周圍,均可以設置其餘的處理方法,進行一些特殊的處理。
好比一個「吃蛋糕」的方法,在這個方法前須要「拆包裝」,方法後須要「打掃衛生」,均可以經過這種編程方式來實現。
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 執行結果