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配置成功!