zoukankan      html  css  js  c++  java
  • Spring4

    Spring 简介

    <<Spring4.rar>><<spring-4.0.6.rar>>

    Spring 作者:Rod Johnson

    官方网站:http://spring.io/

    最新开发包及文档下载地址:http://repo.springsource.org/libs-release-local/org/springframework/spring/

    核心思想:IOC 控制反转;AOP 面向切面;

    介绍:百度百科;

    Spring4 Hello World 实现

    项目实例

    装配一个 bean

    <<beans.xml>>

    项目结构

    配置bean配置文件

    service加载bean配置文件

    Spring IOC 详解

    spring ioc 简介

    spring ioc 实例

    JavaWork

    定义一个接口,具体不同的对象实现接口的方法

    不同具体对象测试

    配置bean配置文件

    (将创建不同的对象实例并配置到接口的方法中,交给Spring管理)

    使用bean配置调用不同对象的测试方法(Java的反射机制)

    更换其他不同对象,不需要更改代码,直接更改bean配置文件

    依赖注入

    属性注入

    配置bean文件

    获取配置的实例

       

    构造函数注入

    通过类型注入

    配置类的有属性构造方法

    配置bean文件

    通过索引注入

    配置bean文件

    类型注入和索引注入可以混用

    工厂方法注入

    静态工厂(方法静态的)

    配置静态方法

    配置bean文件(因为是静态的,不需要单独定义工厂的bean)

    非静态工厂(方法非静态的)

    配置非静态方法

    配置bean文件

    注入参数

    导入Junit4 jar包

    基本类型值

    配置bean.xml

    生成Junit测试实例

    注入bean(dog可以被多个people引用)

    创建dog类

    配置bean.xml,设置dog属性值

    配置people类,添加dog属性

    配置bean.xml,设置people属性值

    内部bean(dog只能被一个people引用)

    配置bean.xml,设置people属性值,内部配置dog的bean,设置属性值

    null值(为空)

    配置bean.xml,添加null标签

    级联属性

    配置bean.xml(使用级联属性,Spring不会自动创建实例,需要自己实例化)

    配置people

    集合类型属性

    List集合

    配置people

    配置bean.xml

    Set集合

    配置people

    配置bean.xml

    Map集合

    配置people

    配置bean.xml

    Properties属性(类似Map,一般用于系统配置)

    配置people

    配置bean.xml

    Spring 自动装配(慎用,屏蔽了实现的细节

    byName(通过name自动装配)

    配置people

    配置bean.xml

    测试类(自动通过name装配dog)

    byType(通过类型自动装配)

    配置bean.xml

    constructor(通过构造方法根据类型自动注入)

    配置people

    配置bean.xml

    方法注入(了解

    配置bean.xml

    配置Dog(将获取实例的get方法,修改成抽象的,让Spring自动实现)

       

    配置bean.xml

    方法替换(了解)(两个不同的类的方法不同,使得A类实现B类的方法)

    配置People2

       

    配置bean.xml(使用配置的reimplement方法实现替换原类的name指定方法)

    bean 之间的关系

    继承

    依赖

    定义Authority权限类

    配置people

    配置bean.xml

       

    引用

       

    bean 作用范围

    singletom (默认为单例的)

    配置bean.xml

       

    prototype(每次都返回一个新的实例)

    配置bean.xml

    Spring AOP 详解

    AOP 简介(解耦,将不同用途的代码分离开来)

    Spring AOP 实例(切面)

    前置通知(方法执行之前的通知)

    目录结构

    配置切面类

    配置bean.xml

       

    会通过配置的before通知,先调用doBefire方法,在执行测试类的方法

    测试

    后置通知(方法执行之后的通知)

    配置bean.xml

    环绕通知(有返回值,优先级比前置通知低

    配置接口(有返回值)

    配置实现接口的类(有返回值)

    配置切面类

    配置bean.xml

    测试

    返回通知

    配置切面类

    配置bean.xml

    异常通知

    配置切面类

    配置bean.xml

    Spring DAO 的支持

    Spring JDBC 的支持

       

    配置数据源dbcp

    <<spring-jdbcTemplate.rar>>

       

    <<spring-dbcp.rar>>

    配置bean.xml

       

    <<beans.xml>>

    创建jdbc.properties文件,配置jdbc信息

    使用JdbcTemplater

    目录结构

    操作的实体类

    dao抽象

    dao具体实现

       

    service抽象

    service具体实现

    配置bean.xml

    事务操作

       

    使用JdbcDaoSupper

    修改dao具体实现

    修改bean.xml

    使用NameParameterJdbcTemplate

    修改dao具体实现

    修改bean.xml

    Spring Hibernate 的支持


    Spring 对事务的支持

    事务简介

    编程式事务管理(不太好,嵌入到业务代码中

    配置BankServiceImpl(将连续的操作放在同一个事务中进行操作)

       

    配置bean.xml

       

       

    声明式事务管理(常用的事务管理

    使用XML配置声明式事务(业务代码不需要更改,只需配置事务通知和事务切面即可)(一般使用xml

    引入头信息

       

    配置bean.xml

    <!-- 配置事务通知 -->

    <tx:advice id="txAdvice" transaction-manager="transactionManager">

            <tx:attributes>

    <tx:method name="*"/>

    </tx:attributes>

    </tx:advice>

    <!-- 配置事务切面 -->

    <aop:config>

            <!-- 配置切点 -->

    <aop:pointcut id="serviceMethod" expression="execution(* com.java1234.service.*.*(..))" />

            <!-- 配置事务通知 -->
            <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod"/>

    </aop:config>

       

    使用注解配置声明式事务(业务代码不需要更改,只需配置注解和事务)(每个service都需要加注解

    配置Service

    配置bean.xml

    事务传播行为(事务的嵌套)

    经典的写法

    <!-- 配置事务通知 -->

    <tx:advice id="txAdvice" transaction-manager="transactionManager">

            <tx:attributes>

    <tx:method name="insert*" propagation="REQUIRED" />

    <tx:method name="update*" propagation="REQUIRED" />

    <tx:method name="edit*" propagation="REQUIRED" />

    <tx:method name="save*" propagation="REQUIRED" />

    <tx:method name="add*" propagation="REQUIRED" />

    <tx:method name="new*" propagation="REQUIRED" />

    <tx:method name="set*" propagation="REQUIRED" />

    <tx:method name="remove*" propagation="REQUIRED" />

    <tx:method name="delete*" propagation="REQUIRED" />

    <tx:method name="change*" propagation="REQUIRED" />

    <tx:method name="get*" propagation="REQUIRED" read-only="true" />

    <tx:method name="find*" propagation="REQUIRED" read-only="true" />

    <tx:method name="load*" propagation="REQUIRED" read-only="true" />

    <tx:method name="*" propagation="REQUIRED" read-only="true" />

    </tx:attributes>

    </tx:advice>

       


    Spring4 整合 Hibernate4Struts2

    S2SH 整合所需 Jar

    <<S2SH Jar整合.rar>>

       

    Struts2.3.16 jar

       

    Spring4.0.6 jar

    Hibernate4.3.5 jar

       

    Spring4 整合 Hibernate4

    Spring4 整合 Struts2

    S2SH 实例测试

    <<S2SH.rar>><<S2SH jar.rar>>

    项目结构

    配置dao层的具体实现(从Spring4开始支持泛型注入,只需一个Dao一个Dao实现)

    配置service层的具体实现

    配置entity

    配置action层(Struts2)

    配置Struts

    配置前端jsp

    hibernateSpring的配置文件是不用更改的使用注解配置具体的实现类

  • 相关阅读:
    [WinJS] Promise 用法
    Python 统计代码行
    mac下Apache + MySql + PHP网站开发
    android中,获取网速的方法实现
    如何屏蔽掉两个activity切换时的动画效果
    dp与px的相互转化
    毫秒的格式化
    关于android中事件传递和分发的一些小理解
    汉字转拼音
    关于实现无限循环的做法
  • 原文地址:https://www.cnblogs.com/ChengR/p/13047586.html
Copyright © 2011-2022 走看看