Spring4.0MVC學習資料,簡單學習教程(一)
Spring Framework 4.0 學習整理。
Spring框架的核心部分就是Ioc容器,而Ioc控製的就是各種Bean,一個Spring項目的水平往往從其XML配置文件內容就能略知一二,很多項目,往往是外包公司的項目,配置文件往往是亂七八糟,抱著能跑就行,不報錯就行的態度去寫,然後在項目中後期發現各種缺失又去一通亂補,其結果就是,整個文檔可讀性極差,毫無章法。這也不能怪寫這個XML的人,拿著苦逼程序員的工資幹著架構師的工作必然是這個結果。為了程序員的幸福,我認為有必要來一套簡單快速的官方文檔核心配置歸納整理和解釋,好讓苦逼猿們在工作中能正確快速的提高自身和項目的整體水平。
看代碼:
package com.herman.ss.test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.herman.ss.pojo.Person; /** * @see spring4.0.0最新穩定版新特性,簡單時候教程1 * @author Herman.Xiong * @date 2014年7月18日14:49:42 */ public class Test0 { /** * @see spring4.0簡單使用教程0 */ public static void test0(){ //1.加載配置文件 ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml"); //2.獲取bean實例 Person person0=(Person)ctx.getBean("person0"); //3.打印bean屬性 System.out.println(person0); //4.給bean屬性複製 person0.setName("herman"); person0.setAge(20); System.out.println(person0); } /** * @see spring4.0簡單使用教程1 */ public static void test1(){ //1.加載配置文件 ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml"); //2.獲取bean實例 隻存在一個bean實例的時候可以使用Person.class 獲取bean Person person0=(Person)ctx.getBean(Person.class); //3.打印bean屬性 System.out.println(person0); //4.給bean屬性複製 person0.setName("herman"); person0.setAge(20); System.out.println(person0); } /** * @see spring4.0簡單使用教程2 */ public static void test2(){ //1.加載配置文件 ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml"); //2.獲取bean實例,這是不能使用Person.class獲取bean了,因為這時配置了兩個Person bean,隻能根據bean的id獲取bean Person person0=(Person)ctx.getBean("person1"); //3.打印bean屬性 System.out.println(person0); } /** * @see spring4.0簡單使用教程3 使用value為對象屬性賦值 */ public static void test3(){ //1.加載配置文件 ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml"); //2.獲取bean實例 Person person0=(Person)ctx.getBean("person2"); //3.打印bean屬性 System.out.println(person0); } /** * @see spring4.0簡單使用教程4 使用bean的構造函數注入 */ public static void test4(){ //1.加載配置文件 ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml"); //2.獲取bean實例 Person person0=(Person)ctx.getBean("person3"); //3.打印bean屬性 System.out.println(person0); } /** * @see spring4.0簡單使用教程5 使用bean的type為屬性賦值 */ public static void test5(){ //1.加載配置文件 ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml"); //2.獲取bean實例 Person person0=(Person)ctx.getBean("person4"); //3.打印bean屬性 System.out.println(person0); } /** * @see spring4.0簡單使用教程6 使用bean的引用對象以及null對象 */ public static void test6(){ //1.加載配置文件 ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml"); //2.獲取bean實例 Person person0=(Person)ctx.getBean("person5"); //3.打印bean屬性 System.out.println(person0); } /** * @see spring4.0簡單使用教程7 使用bean的引用對象以及使用index下標為bean屬性賦值 */ public static void test7(){ //1.加載配置文件 ApplicationContext ctx=new ClassPathXmlApplicationContext("com/herman/ss/config/applicationContext.xml"); //2.獲取bean實例 Person person0=(Person)ctx.getBean("person5"); //3.打印bean屬性 System.out.println(person0); } public static void main(String[] args) { //test0(); //test1(); //test2(); //test3(); //test4(); //test5(); //test6(); test7(); } }
配置文件applicationContext.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="https://www.springframework.org/schema/beans" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:context="https://www.springframework.org/schema/context" xmlns:aop="https://www.springframework.org/schema/aop" xmlns:tx="https://www.springframework.org/schema/tx" xmlns:p="https://www.springframework.org/schema/p" xsi:schemaLocation="https://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans-4.0.xsd https://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context-4.0.xsd https://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop-4.0.xsd https://www.springframework.org/schema/tx https://www.springframework.org/schema/tx/spring-tx-4.0.xsd"> <bean ></bean> <bean > <property name="age" value="20"></property> <property name="name" value="herman"></property> </bean> <bean > <property name="age"> <value>20</value> </property> <property name="name"> <value>herman</value> </property> </bean> <bean > <constructor-arg name="name" value="herman"></constructor-arg> <constructor-arg name="age" value="20"></constructor-arg> </bean> <bean > <constructor-arg type="int" value="20"></constructor-arg> <constructor-arg type="java.lang.String" value="herman"></constructor-arg> </bean> <bean > <constructor-arg> <null></null> </constructor-arg> <constructor-arg name="address" value="Shanghai"></constructor-arg> <constructor-arg name="price" value="10000000.12"></constructor-arg> </bean> <bean > <constructor-arg type="int" value="20"></constructor-arg> <constructor-arg type="java.lang.String" value="herman"></constructor-arg> <constructor-arg type="com.herman.ss.pojo.House" ref="house"></constructor-arg> </bean> <bean > <constructor-arg type="int" value="20" index="1"></constructor-arg> <constructor-arg value="herman" index="0"></constructor-arg> <constructor-arg type="com.herman.ss.pojo.House" ref="house"></constructor-arg> </bean> </beans>
<bean class=”這個Bean的類” name/id=”Bean在容器裏麵的唯一名稱”
scope=”Bean的生命周期,詳細解釋看下麵”
autowiring-mode=”這個Bean的properties的自動注入方式,詳細解釋看下麵”
lazy-init=”是否為懶加載,詳細解釋看下麵“
init-method=”容器初始化該Bean後的回調方法,詳細解釋看下麵”
destroy-method = “容器在銷毀該Bean後的回調方法,詳細解釋看下麵“
abstract=”是否為抽象Bean,主要用來統一XML配置文檔裏麵的很多Bean的屬性配置,與Java的Abstract Class無任何關係”
parent=”父Bean的名稱,會繼承父Bean的屬性,也是隻在配置文檔中有效,與Java的Class無任何關係”
factory-method=”工廠方法的名字”
factory-bean=”工廠Bean的名字”
depends-on =”依賴Bean的名字,Spring保證會在初始化這個Bean前先初始化被依賴的Beans,這個屬性不會被子Bean繼承,子Bean要重新寫自己的depends-on”
autowire-candidate = “是否為自動注入的候選,一般當其他Bean設置autowiring-mode屬性為自動搜尋時可以避免或允許該Bean被列入匹配列表”
primary = “是否將該Bean在其他Bean的自動注入候選人中設為首選” >
// Constructor-arg方式給屬性賦值寫法一
<constructor-arg type=”int” value=”7500000″/>// Constructor-arg方式給屬性賦值寫法二
<constructor-arg name=”years” value=”7500000″/>// Constructor-arg方式給屬性賦值寫法三
<constructor-arg index=”0″ value=”7500000″/>// Properties方式給屬性賦值寫法一
<property name=”beanOne”>
<ref bean=”另外一個Bean的名字”/>
</property>// Properties方式給屬性賦值寫法二
<property name=”beanOne” ref=”另外一個Bean的名字“/>// Properties方式給屬性賦值寫法三
<property name=”integerProperty” value=”1″/>
</bean>

項目整合了struts2和spring4.0.6的jar包。
jar包下載:https://download.csdn.net/download/xmt1139057136/7649389 點擊下載
如有疑問,請加qq群:135430763 共同學習!
最後更新:2017-04-03 05:39:25