Spring

目录

1.Spring的概述

1.1 什么是Spring框架

1.2 为什么要使用Spring

1.3 IOC/DI概念

1.4 Spring的工厂类

1.5 Spring的入门(IOC)

2.Spring的配置

2.1 XML的提示配置

Schema的配置

2.2 Bean的相关的配置

2.3 Spring的分模块开发的配置

3.Spring的属性注入(非注解)

3.1 类成员变量常用的注入方式

3.2 Spring的2.5版本:p名称空间的注入

3.3 Spring的3.0版本:SpEL注入方式

3.4 集合(List,Set,Map),Properties等的注入

3.5 Spring自动装配Beans

 4.Spring的IOC的注解开发

4.1 Spring的IOC注解开发的快速入门

4.2 Spring的IOC注解的的详解

4.3Bean的作用范围和生命周期的注解

4.4 xml和注解整合开发

5.Spring的AOP的xml的开发

5.1 AOP的概述

5.2 Spring底层的AOP实现原理

 JDK的动态代理实现(代码了解,理解原理)

 CGLIB的代理技术实现(代码了解)

5.3 Spring基于AspectJ的AOP的开发

AOP的相关术语

5.4 Spring的AOP入门(AspectJ的XML方式)

5.5 Spring框架整合JUnit单元测试

5.6 AOP的通知类型

5.7 Spring的切入点表达式

6.Spring的AOP的基于AspectJ注解开发

6.1 Spring的基于ApsectJ的注解的AOP开发

6.2 Spring的注解的AOP的通知类型

7.Spring的JDBC的模板的使用

7.1 Spring框架的JDBC模板技术

7.2 JDBC模板使用的入门

7.3 将连接池和模板交给Spring管理

7.4 使用开源的数据库连接池

7.5 Spring框架的JDBC模板的简单操作

8.Spring的事务管理

8.1 事务的回顾

8.2 Spring的事务管理的API

8.3 Spring的事务的传播行为

8.4 Spring的事务管理

8.5 Spring的事务管理:编程式事务(了解)

8.6 Spring的事务管理:声明式事务管理

1.XML方式的声明式事务管理

2.注解方式的声明式事务管理


 

 

1.Spring的概述

1.1 什么是Spring框架

  • Spring是一个(以DI和AOP为核心)分层的JavaSE/EE一站式轻量级开源框架。
  • 一站式框架:有EE开发的每一层解决方案。
    • WEB层             :SpringMVC
    • Service层         :Spring的Bean管理,Spring声明式事务
    • DAO层              :Spring的Jdbc模板,Spring的ORM模块

1.2 为什么要使用Spring

1.方便解耦,简化开发

通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。

2.AOP编程的支持

通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。

3.声明式事务的支持

Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。

4.方便程序的测试

可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。例如:SpringJunit4支持,可以通过注解方便的测试Spring程序。

5.方便集成各种优秀框架

Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如mybatisHibernateJPAStrutsHessianQuartz)等的直接支持。

6.降低Java EE API的使用难度

Spring对很多难用的Java EE API(如JDBCJavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。

7.Java 源码是经典学习范例

Spring的源码设计精妙、结构清晰、匠心独运,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。Spring框架源码无疑是Java技术的最佳实践范例。如果想在短时间内迅速提高自己的Java技术水平和应用开发水平,学习和研究Spring源码将会使你收到意想不到的效果。

1.3 IOC/DI概念

  • IOC: Inversion of Control(控制反转):不是什么技术,而是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。核心:bean工厂;Spring中,bean工厂创建的各个实例称作bean。所谓控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转。
  • DI:Dependency Injection:所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。使用Spring我们不必在程序中维护对象的依赖关系,只要在XML中设定,Spring容器会自已根据相关的配置去产生他们之间的关系,相当于所有的关系都是在容器运行的时候注入的,而本身他们的关系是没有的
  • DI 相对 IoC 而言,明确描述了“被注入对象依赖 IoC 容器配置依赖对象”, 那么DI是如何实现的呢? Java 1.3之后一个重要特征是反射(reflection),它允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性,spring就是通过反射来实现注入的。
  • IOC指导我们如何设计出松耦合、更优良的程序。

1.4 Spring的工厂类

Spring工厂类的结构图

1. ApplicationContext接口
    * 使用ApplicationContext工厂的接口,使用该接口可以获取到具体的Bean对象
    * 该接口下有两个具体的实现类
        * ClassPathXmlApplicationContext            -- 加载类路径下的Spring配置文件
        * FileSystemXmlApplicationContext            -- 加载本地磁盘下的Spring配置文件

2. BeanFactory工厂(是Spring框架早期的创建Bean对象的工厂接口)
    * 使用BeanFactory接口也可以获取到Bean对象

public void run(){
   BeanFactory factory = newXmlBeanFactory(newClassPathResource("applicationContext.xml"));
   UserService us = (UserService) factory.getBean("us");
   us.sayHello();
}

3. BeanFactory和ApplicationContext的区别
        * BeanFactory                  -- 调用getBean的时候,才会生成类的实例。
        * ApplicationContext        -- 加载配置文件的时候,就会将Spring管理的类都实例化。

1.5 Spring的入门(IOC)

步骤一:下载Spring框架的开发包
    * 官网:http://spring.io/
    * 下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring解压:(Spring目录结构:)


        * docs        -- API和开发规范
        * libs        -- jar包和源码
        * schema    -- 约束

步骤二:创建WEB项目,引入Spring的开发包
    * 根据Spring框架的体系结构图能看到,IOC核心功能需要引入如下的jar包
            * Beans
            * Core
            * Context
            * Expression Language
        
        * Spring框架也需要引入日志相关的jar包
            * 在spring-framework-3.0.2.RELEASE-                          dependencies/org.apache.commons/com.springsource.org.apache.commons.logging/1.1.1
                * com.springsource.org.apache.commons.logging-1.1.1.jar
            * 还需要引入log4j的jar包 spring-framework-3.0.2.RELEASE-dependencies\org.apache.log4j\com.springsource.org.apache.log4j\1.2.15
                * com.springsource.org.apache.log4j-1.2.15.jar

步骤三:创建对应的包结构,编写Java的类
    * com.wyt.demo1
        * UserService            -- 接口
        * UserServiceImpl     -- 具体的实现类

步骤四:想把UserServiceImpl实现类的创建交给Spring框架来管理,需要创建Spring框架的配置文件,完成配置
    * 在src目录下创建配置文件applicationContext.xml(默认名称)的,名称是可以任意的
    * 引入spring的约束,需要先找到具体的约束头信息!!
        * spring-framework-3.2.0.RELEASE\docs\spring-framework-reference\html\xsd-config.html
        * 具体的约束如下:    
            <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">
            </beans>
    * 完成UserService的配置
        <bean id="userService" class="com.itcast.demo1.UserServiceImpl"/>

6. 步骤五:编写测试类,采用Spring框架的工厂方式来获取到UserService接口的具体实现类

2.Spring的配置

2.1 XML的提示配置

Schema的配置

2.2 Bean的相关的配置

1. id属性和name属性的区别
    * id        --使用了约束中的唯一约束
  

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值