spring配置與使用

1、Spring介紹

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

  • 方便解耦,簡化開發
    • Spring 就是一個大工廠,能夠將全部對象建立和依賴關係維護,交給 Spring 管理
  • AOP 編程的支持
    • Spring 提供面向切面編程,能夠方便的實現對程序進行權限攔截、運行監控等功能
  • 聲明式事務的支持
    • 只須要經過配置就能夠完成對事務的管理,而無需手動編程
  • 方便程序的測試
    • Spring 對 Junit4 支持,能夠經過註解方便的測試 Spring 程序
  • 方便集成各類優秀框架
    • Spring 不排斥各類優秀的開源框架,其內部提供了對各類優秀框架(如:Struts、Hibernate、MyBatis、Quartz 等)的直接支持 下降 JavaEE API 的使用難度
  • Spring 對 JavaEE 開發中很是難用的一些 API(JDBC、JavaMail、遠程調用等),都提供了封裝,使這些 API 應用難度大大下降。

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接口有兩個實現類:

  • ClassPathXmlApplicationContext :加載類路徑下 Spring 的配置文件
  • FileSystemXmlApplicationContext :從絕對路徑上加載本地磁盤下 Spring 的配置文件,基本用不着。

 

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);  
    }  
  
}  
person.java
<?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>  
beans.xml
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();  
    }  
}  
PersonTest.java
相關文章
相關標籤/搜索