1. 什麼是Springjava
Spring是一個開源框架,Spring是於2003 年興起的一個輕量級的Java 開發框架,由 RodJohnson 在其著做 Expert One-On-One J2EE Development and Design 中闡述的部分理念和原型衍生而來。它是爲了解決企業應用開發的複雜性而建立的。框架的主要優點之一就是其分層架構,分層架構容許使用者選擇使用哪個組件,同時爲 J2EE 應用程序開發提供集成的框架。Spring 使用基本的 JavaBean 來完成之前只可能由 EJB 完成的事情。然而,Spring 的用途不只限於服務器端的開發,去開發android也能夠。從簡單性、可測試性和鬆耦合的角度而言,任何 Java 應用均可以從 Spring 中受益。Spring 的核心是控制反轉 (IoC)和麪向切面(AOP)。簡單來講,Spring 是一個分層的 JavaSE/EEfull-stack(一站式) 輕量級 開源框架。android
2. 爲何要學習Springspring
3. Spring 的版本編程
Spring 3.X 和 Spring4.X服務器
Spring 3.0.2版本:將市面上常見的、支持整合進來的工具類所有進行了收錄,這個包裏面有不少不少jar包。可是這是Spring堅持「作好事」的最後一個版本,沒有任何回報。架構
1. IOC思想和DI技術app
(1)IOC (Inverse Of Control):控制反轉,將咱們建立對象的方式反轉了。框架
之前對象的建立是由開發人員本身維護,包括依賴關係也是本身注入。使用了Spring以後,對象的建立以及依賴關係能夠由Spring完成建立以及注入。ide
(2)DI(Dependency Injection):依賴注入。將必須的屬性注入到對象當中,是實現IOC思想的必要條件。函數
須要有 IOC 的環境,Spring 建立這個類的過程當中,Spring 將類的依賴的屬性設置進去。
2. Spring中的工廠(容器)
(1)ApplicationContext
ApplicationContext接口有兩個實現類:
3. Spring生成Bean的三種方式(三種對象建立方式)
對象的建立必須通過類的構造函數。
(1)空參構造建立 --最重要
在上面示例中的User對象中加一個無參構造函數
從新建立一個包,把applicationContext.xml複製進該包中,把測試類testSpringDemo.java複製進該包中,並修改該文件中applicationContext.xml的位置。
具體代碼以下:
package com.mao.gouzao; public class Person { private String name; public Person(String name) this.name=name; { System.out.println("Spring容器開始經過無參構造器建立Bean實例------------"); } public void input() { System.out.println("歡迎來到個人博客:"+name); } }
<?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <!-- 指定class屬性,經過構造方法建立Bean實例 --> <bean id="person" class="com.mao.gouzao.Person"> <!-- 經過構造方法賦值 --> <constructor-arg name="name" value="魔術師"></constructor-arg> </bean> </beans>
import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class PersonTest { public static void main(String[]args) { //建立Spring容器 ApplicationContext ctx=new ClassPathXmlApplicationContext("beans.xml"); //經過getBean()方法獲取Bean實例 Person person=(Person) ctx.getBean("person"); person.input(); } }