spring day01

1 组件/框架设计html

侵入式设计                 引入了框架,对现有的类的结构有影响;即须要实现或继承某些特定类。java

                 例如:    Struts框架web

非侵入式设计spring

        引入了框架,对现有的类结构没有影响。express

        例如:Hibernate框架 / Spring框架编程

控制反转:api

        Inversion on Control , 控制反转 IOCsession

        对象的建立交给外部容器完成,这个就作控制反转.mvc

       

        依赖注入,  dependency injectionapp

                 处理对象的依赖关系

 

        区别:

 控制反转, 解决对象建立的问题 【对象建立交给别人】

        依赖注入,

                 在建立完对象后, 对象的关系的处理就是依赖注入 【经过set方法依赖注入】

AOP

        面向切面编程。切面,简单来讲来能够理解为一个类,由不少重复代码造成的类。

        切面举例:事务、日志、权限;

2 Spring框架

a. 概述

Spring框架,能够解决对象建立以及对象之间依赖关系的一种框架。

                         且能够和其余框架一块儿使用;Spring与Struts,  Spring与hibernate

                         (起到整合(粘合)做用的一个框架)

Spring提供了一站式解决方案:

        1) Spring Core  spring的核心功能: IOC容器, 解决对象建立及依赖关系

        2) Spring Web  Spring对web模块的支持。

                                                  -à 能够与struts整合,让struts的action建立交给spring

                                              -à spring mvc模式

        3) Spring DAO  Spring 对jdbc操做的支持  【JdbcTemplate模板工具类】

        4) Spring ORM  spring对orm的支持:

                                                  à 既能够与hibernate整合,【session】

                                                  à 也可使用spring的对hibernate操做的封装

        5)Spring AOP  切面编程

        6)SpringEE   spring 对javaEE其余模块的支持

b. 开发步骤

spring各个版本中:

        在3.0如下的版本,源码有spring中相关的全部包【spring功能 + 依赖包】

                 如2.5版本;

        在3.0以上的版本,源码中只有spring的核心功能包【没有依赖包】

                 (若是要用依赖包,须要单独下载!)

 

 

1) 源码, jar文件:spring-framework-3.2.5.RELEASE

        commons-logging-1.1.3.jar           日志

spring-beans-3.2.5.RELEASE.jar        bean节点

spring-context-3.2.5.RELEASE.jar       spring上下文节点

spring-core-3.2.5.RELEASE.jar         spring核心功能

spring-expression-3.2.5.RELEASE.jar    spring表达式相关表

 

以上是必须引入的5个jar文件,在项目中能够用户库管理!

 

2) 核心配置文件: applicationContext.xml 

        Spring配置文件:applicationContext.xml / bean.xml

       

        约束参考:

spring-framework-3.2.5.RELEASE\docs\spring-framework-reference\htmlsingle\index.html

3 SpringIOC容器

1) 建立对象

SpringIOC容器,是spring核心内容。

做用: 建立对象 & 处理对象的依赖关系

 

IOC容器建立对象:

建立对象, 有几种方式:

1) 调用无参数构造器

2) 带参数构造器

3) 工厂建立对象

                 工厂类,静态方法建立对象

                 工厂类,非静态方法建立对象

2) 对象依赖关系

Spring中,如何给对象的属性赋值?  【DI, 依赖注入】

        1) 经过构造函数

        2) 经过set方法给属性注入值

        3) p名称空间

        4)自动装配(了解)

        5) 注解

 

 根据名称自动装配:autowire="byName"

 自动去IOC容器中找与属性名同名的引用的对象,并自动注入

也能够定义到全局, 这样就不用每一个bean节点都去写autowire=”byName”

 

根据类型自动装配:autowire="byType"

必须确保改类型在IOC容器中只有一个对象;不然报错。

总结:

        Spring提供的自动装配主要是为了简化配置; 可是不利于后期的维护。

        (通常不推荐使用)

# 注解

注解方式能够简化spring的IOC容器的配置!

 

使用注解步骤:

        1)先引入context名称空间

                 xmlns:context="http://www.springframework.org/schema/context"

        2)开启注解扫描

                 <context:component-scan base-package="cn.itcast.e_anno2"></context:component-scan>

        3)使用注解

                 经过注解的方式,把对象加入ioc容器。

 

           建立对象以及处理对象依赖关系,相关的注解:

                 @Component   指定把一个对象加入IOC容器

 

@Repository   做用同@Component; 在持久层使用

@Service      做用同@Component; 在业务逻辑层使用

@Controller    做用同@Component; 在控制层使用

 

@Resource     属性注入

 

总结:

        1) 使用注解,能够简化配置,且能够把对象加入IOC容器,及处理依赖关系(DI)
        2) 注解能够和XML配置一块儿使用。

 

4. Spring与Struts框架整合

Spring,负责对象对象建立

Struts, 用Action处理请求

 

Spring与Struts框架整合,

        关键点:让struts框架action对象的建立,交给spring完成!

 

Spring与Hibernate整合:

 

【SSH整合:

                 Spring与Struts

                         关键点: action交给spring建立!

                 Spring与Hibernate

                         关键点: sessionFactory对象交给spring建立!

 

步骤:

引入jar文件

        1)引入struts .jar相关文件

        2)spring-core  相关jar文件

        3)spring-web 支持jar包

                 spring-web-3.2.5.RELEASE.jar                  【Spring源码】

struts2-spring-plugin-2.3.4.1.jar      【Struts源码】

 

配置:

        4)配置XML

struts.xml                 【struts路径与action映射配置】

bean.xml              【spring ioc容器配置】

web.xml                  

【核心过滤器: 引入struts功能】

【初始化spring的ioc容器】

 

 

【初始化spring的ioc容器】

        查看api。

 

        4) 代码以及配置

相关文章
相关标签/搜索