spring知识点

第一节 :spring ioc
     IOC(控制反转:Inverse of Control ),又称作 依赖注入,是一种重要的面向对象编程的法则来削减计算机程 序的耦合问题,也是轻量级的 Spring 框架的核心 

第二节 :spring ioc  实例讲解

第三节 :装配一个 bean

第四节 :依赖注入
     1,属性注入;
     2,构造函数注入;(通过类型;通过索引;联合使用)
     3,工厂方法注入;(非静态工厂,静态工厂)
     4,泛型依赖注入;(Spring4 整合 Hibernate4 的时候顺带讲)

第五节 :注入参数
     1,基本类型值;
     2,注入 bean;
     3,内部 bean;
     4,null 值;
     5,级联属性;
     6,集合类型属性;

第六节 :Spring  自动装配
     通过配置 default-autowire 属性,Spring IOC 容器可以自动为程序注入 bean;默认是 no,不启用自动装配;
     default-autowire 的类型有 byName,byType,constructor;
     byName:通过名称进行自动匹配;
     byType:根据类型进行自动匹配;
     constructor:和 byType 类似,只不过它是根据构造方法注入而言的,根据类型,自动注入;
     建议:自动装配机制慎用,它屏蔽了装配细节,容易产生潜在的错误;

第七节方法注入:
     Spring bean 作用域默认是 单例 singleton; 可以通过配置 prototype ,实现多例;
     方法注入 lookup-method

第八节 :方法替换

第九节 :bean  之间的关系
     1,继承;
     2,依赖;
     3,引用;

第十节 :bean  作用范围 
     1,singleton Spring ioc 容器中仅有一个 Bean 实例,Bean 以单例的方式存在;
     2,prototype 每次从容器中调用 Bean 时,都返回一个新的实例;
     3,request 每次 HTTP 请求都会创建一个新的 Bean;
     4,session 同一个 HTTP Session 共享一个 Bean;
     5,global session 同一个全局 Session 共享一个 Bean,一般用于 Portlet 应用环境;
     6,application 同一个 Application 共享一个 Bean;


第一节 :AOP  简介
AOP 简介:百度百科;
面向切面编程(也叫面向方面编程):Aspect Oriented Programming(AOP),是软件开发中的一个热点,也是 Spring
框架中的一个重要内容。利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度
降低,提高程序的可重用性,同时提高了开发的效率。
主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。
第二节 :SpringAOP  实例
1,前置通知;
2,后置通知;
3,环绕通知;
4,返回通知;
5,异常通知;

第一节 :Spring 对 对 JDBC  的支持

1,配置数据源 dbcp;

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/db_bank
jdbc.username=root
jdbc.password=123456


<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driverClassName}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

    <!-- jdbc事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

     <context:property-placeholder location="jdbc.properties"/>     

2,使用 JdbcTemplate;
3,JdbcDaoSupport 的使用;
4,NamedParameterJdbcTemplate 的使用;支持命名参数变量;
org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate
第二节 :Spring 对 对 Hibernate  的支持
后面 Spring 整合 Hibernate 的时候讲;

第一节 :事务简介
满足一下四个条件:
第一:原子性;
第二:一致性;
第三:隔离性;
第四:持久性;
第二节 :编程式事务管理
     Spring 提供的事务模版类:org.springframework.transaction.support.TransactionTemplate
     事务管理器:org.springframework.jdbc.datasource.DataSourceTransactionManager
第三节 :声明式事务管理
     1,使用 XML 配置声明式事务;
     

    <!-- jdbc事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!-- 配置事务通知 -->
    <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>

    <!-- 配置事务切面 -->
    <aop:config>
        <!-- 配置切点 -->
        <aop:pointcut id="serviceMethod" expression="execution(* com.java1234.service.*.*(..))" />
        <!-- 配置事务通知 -->
        <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod"/>
    </aop:config>


     2,使用注解配置声明式事务;
第四节 :事务传播行为
     事务传播行为:Spring 中,当一个 service 方法调用另外一个 service 方法的时候,因为每个 service 方法都有事
     务,这时候就出现了事务的嵌套;由此,就产生了事务传播行为;
     在 Spring 中,通过配置 Propagation,来定义事务传播行为;

PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。
<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>



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值