javascript
Spring教程--入门程序
1 Spring框架的概述:
1.1?什么是Spring:
Spring是分層的JavaSE/EE full-stack(一站式) 輕量級開源框架
* 分層:
* SUN提供的EE的三層結(jié)構(gòu):web層、業(yè)務(wù)層、數(shù)據(jù)訪問層(持久層,集成層)
* Struts2是web層基于MVC設(shè)計(jì)模式框架.
* Hibernate是持久的一個(gè)ORM的框架.
* 一站式:
* Spring框架有對三層的每層解決方案:
* web層:Spring MVC.
* 持久層:JDBC Template
* 業(yè)務(wù)層:Spring的Bean管理.
1.2?Spring的核心:
IOC:(Inverse of Control 反轉(zhuǎn)控制)
* 控制反轉(zhuǎn):將對象的創(chuàng)建權(quán),交由Spring完成.
AOP:Aspect Oriented Programming 是 面向?qū)ο蟮墓δ苎由?不是替換面向?qū)ο?是用來解決OO中一些問題.
IOC:控制反轉(zhuǎn).
1.3?Spring的版本:
Spring3.x和Spring4.x ?Spring4需要整合hibernate4.
1.4?EJB:企業(yè)級JavaBean
EJB:SUN公司提出EE解決方案.
2002 : Expert One-to-One J2EE Design and Development
2004 : Expert One-to-One J2EE Development without EJB (EE開發(fā)真正需要使用的內(nèi)容.)
1.5?Spring優(yōu)點(diǎn):
方便解耦,簡化開發(fā)
* Spring就是一個(gè)大工廠,可以將所有對象創(chuàng)建和依賴關(guān)系維護(hù),交給Spring管理
AOP編程的支持
* Spring提供面向切面編程,可以方便的實(shí)現(xiàn)對程序進(jìn)行權(quán)限攔截、運(yùn)行監(jiān)控等功能
聲明式事務(wù)的支持
* 只需要通過配置就可以完成對事務(wù)的管理,而無需手動(dòng)編程
方便程序的測試
* Spring對Junit4支持,可以通過注解方便的測試Spring程序
方便集成各種優(yōu)秀框架
* Spring不排斥各種優(yōu)秀的開源框架,其內(nèi)部提供了對各種優(yōu)秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
降低JavaEE API的使用難度
* Spring 對JavaEE開發(fā)中非常難用的一些API(JDBC、JavaMail、遠(yuǎn)程調(diào)用等),都提供了封裝,使這些API應(yīng)用難度大大降低
2?Spring的入門的程序:
2.1?下載Spring的開發(fā)包:
spring-framework-3.2.0.RELEASE-dist.zip---Spring開發(fā)包
* docs:spring框架api和規(guī)范
* libs:spring開發(fā)的jar包
* schema:XML的約束文檔.
spring-framework-3.0.2.RELEASE-dependencies.zip---Spring開發(fā)中的依賴包
2.2?創(chuàng)建web工程引入相應(yīng)jar包:
spring-beans-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-core-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
開發(fā)的日志記錄的包:
com.springsource.org.apache.commons.logging-1.1.1.jar--- 用于整合其他的日志的包(類似Hibernate中slf4j)
com.springsource.org.apache.log4j-1.2.15.jar
2.3?創(chuàng)建Spring的配置文件:
在src下創(chuàng)建一個(gè)applicationContext.xml
引入XML的約束:
* 找到xsd-config.html.引入beans約束:
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans " >http://www.springframework.org/schema/beans/spring-beans.xsd">2.4?在配置中配置類:
<bean id="userService" class="com.sihai.spring3.demo1.HelloServiceImpl"></bean>1.2.5?創(chuàng)建測試類:
@Test// Spring開發(fā)public void demo2() {// 創(chuàng)建一個(gè)工廠類.ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");HelloService helloService = (HelloService) applicationContext.getBean("userService");helloService.sayHello();}2.6?IOC和DI區(qū)別
IOC:控制反轉(zhuǎn):將對象的創(chuàng)建權(quán),由Spring管理.
DI:依賴注入:在Spring創(chuàng)建對象的過程中,把對象依賴的屬性注入到類中.
* 面向?qū)ο笾袑ο笾g的關(guān)系;
* 依賴:
public class A{
private B b;
}
* 繼承:is a
* 聚合:
* 聚集:
* 組合:
2.7?Spring框架加載配置文件:
ApplicationContext 應(yīng)用上下文,加載Spring 框架配置文件
加載classpath:
?????new ClassPathXmlApplicationContext("applicationContext.xml");:加載classpath下面配置文件.
加載磁盤路徑:
?????new FileSystemXmlApplicationContext("applicationContext.xml");:加載磁盤下配置文件.
2.8?BeanFactory與ApplicationContext區(qū)別
ApplicationContext類繼承了BeanFactory.
BeanFactory在使用到這個(gè)類的時(shí)候,getBean()方法的時(shí)候才會(huì)加載這個(gè)類.
ApplicationContext類加載配置文件的時(shí)候,創(chuàng)建所有的類.
ApplicationContext對BeanFactory提供了擴(kuò)展:
* 國際化處理
* 事件傳遞
* Bean自動(dòng)裝配
* 各種不同應(yīng)用層的Context實(shí)現(xiàn)
***** 早期開發(fā)使用BeanFactory.
2.9?MyEclipse配置XML提示:
Window--->xml catalog--->add 找到schema的位置 ,將復(fù)制的路徑 copy指定位置,選擇schema location.
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的Spring教程--入门程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringMVC教程--json使用详
- 下一篇: Spring教程--IOC(控制反转)详