Spring 框架(一)(IoC和AOP,S2SH和SSM)

1、Spring介紹 

    spring是一個輕量級的java開源框架,從單一的ioc和aop框架發展爲一站式、多項目的基礎平臺系統。爲了解決企業應用開發的複雜性而創建的。Spring可以和其它框架進行整合,從而實現多個框架的協同開發

Spring的兩個核心基礎:控制反轉(IoC)和麪向切面(AOP)

           控制反轉(IoC):(Inversion of Control)控制反轉,是一種設計思想,即將設計好的對象交給容器控制,而不是傳統在你的對象內部之間控制。容器控制對象(控制),容器幫忙創建及注入依賴對象(反轉)。(將對象的權限交給Spring)

         控制反轉IoC(Inversion of Control)是說創建對象的控制權進行轉移,以前創建對象的主動權和創建時機是由自己把控的,而現在這種權力轉移到第三方。獲得依賴對象的方式反轉了。

           面向切面(AOP):用刀把一個西瓜分成兩瓣,切開的切口就是切面;炒菜,鍋與爐子共同來完成炒菜,鍋與爐子就是切面。web層級設計中,web層->網關層->服務層->數據層,每一層之間也是一個切面。編程中,對象與對象之間,方法與方法之間,模塊與模塊之間都是一個個切面。(相當於一個判斷模塊放在兩者之間。。事務)
 

 

2、S2SH 和  SSM 的區別

    S2SH是指 Spring+Struts2+Hibernate       ; SSM指Spring+SpringMVC+MyBatis

   Struts2 和 SpringMVC的區別:

         1. Struts2的入口是Filter,而SpringMVC的入口是Servlet。

         2. Struts2基於類設計,每發送的一個請求都對應一個Action; 而SpringMVC基於方法。因此SpringMVC的執行速度比Struts2快。

         3. 在頁面開發方面,Struts2中的OGNL比SpringMVC效率高;但SpringMVC支持JSR303、Spring表單標籤等,處理起來更叫方便。

 

   Hibernate 和 Mybatis 的區別:

        (1)Hibernate功能更加強大,但學習難度大;Mybatis小巧靈活,學習門門檻低。

        (2)Hibernate的DAO層次開發比MyBatis簡單,MyBatis需要維護SQL的結果映射。

        (3)Hibernate方便數據庫的移植,而MyBatais對不同的數據庫需要寫不同的SQL。

        (4)在SQL優化方面,使用MyBatis更方便(可以寫更爲優化的SQL語句)。

 

3、搭建Spring開發環境

Spring核心模塊:

             spring-core:IoC 和依賴注入;

             spring-beans:BeanFactory 提供工廠功能,移除單例的需求;

             spring-context:國際化、事件傳播、資源加載,創建上下文等;

             spring-context-content-support:提供緩存、郵件等

             spring-expression(表達式語言,運行時查詢和操作對象圖)等模塊組成。

 

   1. http://repo.spring.io/simple/libs-release-local/org/springframework/spring/ 下載名稱爲 springframework-3.2.13.RELEASE-dist.zip 的壓縮包 http://commons.apache.org/proper/commons-logging/download_logging.cgi 下載。該 JAR 包現在最新版本爲 commons-logging.1.2, 下的文件到自己項目中。

   2. maven下載,引入依賴;

 

 

4、簡單spring程序

      1.創建web項目,添加依賴

       

 

2、創建調用接口(使用接口從ioc中獲取數據調用方法(無new),因爲在ioc中創建的對象(初始化))

public interface PersonDao {
    public void add();
}

3、創建接口實現類(方法是具體實現)

public class PersonDaoImpl implements PersonDao {
    @Override
    public void add() {
        System.out.println("add()執行。。。");
    }
}

4、創spring配置文件

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">
   
 <!-- 由 Spring容器創建該類的實例對象 -->
    <bean id="personDao" class="com.mengma.ioc.PersonDaoImpl" />
</beans>

5、測試

public class Test {
    public static void main(String[] args) {
        
        ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
        PersonDao personDao= (PersonDao) applicationContext.getBean("personDao");

        personDao.add();
    }

 

 

6、測試結果如下,則spring配置成功!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章