spring 4.0 粗略学习笔记

spring 支持三种依赖注入的方式
1/属性注入
2/构造注入
3/p命名空间注入
4/工厂方法注入 (很少使用 ,不推荐 包括 静态内部类工厂模式的注入和 实例接口工厂的注入 等  )

1-->注入属性
    属性注入通过的是set方法  注入属性的值或者依赖的对象
    属性注入使用<property>标签   使用name属性指定bean的属性名称   使用value属性注入属性的值
2-->构造注入
    通过构造方法注入 可以保证bean实例在实例化后就可以使用   比1的实例化快

关于配置的继承
使用bean的parent进行继承   子bean   会继承父bean的属性    同时若子bean有的属性 则覆盖父bean的属性

如果赋给bean   Abstract   的值是true    则   这个bean是一个抽象bean      用来给bean 继承使用  不能被IOC容器实例化
若某个bean的class没有指定   name这个bean必须是一个抽象bean   作为模板给子bean使用         Abstract属性不会被继承

Bean之间的依赖关系
depends-on      依赖某个bean   若   depends-on= car   如果Ioc容器里没有car这个bean  则无法成功初始化


bean的作用域
默认情况下  在ioc容器中配置一个bean   默认是单例的  实际使用的时候每次获取的都是同一个实例
可以在bean里通过scope来配置他的作用域
Request
Session
singleton   单利      每次获取的实例是同一个
prototype   原型的  每次获取的都是一个新的实例   和单利的相反     这个是例会有一个新的位置在内存里    容器初始化的时候不会创建实例 每次获取的时候都会获取新的实例


使用外部属性文件
在配置文件Bean的时候 ,有时候需在bean的配置里混入系统部署的细节信息  而这些部署细节实际上需要和bean分离  比如配置数据源
spring4 新特性:  <context:property-placeholder location="classpath:database.properties"></context:property-placeholder>
配置属性的时候通过   ${}  获取值    类似el表达式


spEL   sprig表达式语言
支持运行时查询和操作对象的强大表达式语言
类似El   使用#{}   作为定界符    所在花括号里的字符都将被认为是SPEL
spel 为bean的属性实现冬天复制提供了便利
通过SPEL可以实现如下功能
1/通过bean的id对bean进行引用
2/调用其他对象的方法和引用其他对象的属性
3/计算表达式
4/正则表达式的匹配



注解方式注入
@Component: 基本注解, 标识了一个受 Spring 管理的组件
@Respository: 标识持久层组件
@Service: 标识服务层(业务层)组件
@Controller: 标识表现层组件

切面    横切关注点(跨越应用程序多个模块的功能)被模块化的特殊对象
通知   切面里的每个方法   叫通知

spring中使用jdbc
 1/配置数据源
 2/管理   JDBCTemplate   类  ,并set注入数据源
 3/使用jdbcTemplate     调用该类的方法       select     update   等..
创建的类若继承了    JDBCDAOSUPPORT    这个类  则         直接调用  getJdbcTemplate   方法
在jdbc模板中使用具名参数
1/    在spring   jdbc 框架中 绑定SQL参数的另一种选择是使用具名参数
        具名参数定义  : SQL根据名称   以冒号开头    而不是按位置进行指定     相对jdbcTemplate更加灵活
                    可以通过一个对象注入   而这个对象注入需要对象解析器
                            SqlParameterSource paramsource = new BeanPropertySqlParameterSource(需要解析的对象);
                             jdbcTemplateByName.update(sql,paramsource):



spring  事务管理

1/配置事务管理器        管理器的参数是数据源
2/启用事务注解    @TRansaction     事务注解  使用propagation  指定事务的传播行为


  <bean     id="tx" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <tx:annotation-driven transaction-manager="tx"/>


事务具有很多属性    如事务的过期时间  事务的传播机制  事务的隔离级别

事务的传播行为   事务方法被另外一个事务方法调用的时候 必须制定事务应该如何传播

 required  spring默认的事务机制         一个事务调用另外一个事务   被调用的事务使用调用者的事务
                    require-new     新开一个事务         一个事务调用另外一个事务 ,   这个被调用的事务在执行的时候会开启一个新的事务
                                                                        调用的事务挂起等他调用的事务执行结束  再继续执行
事务的隔离级别    使用isolation 指定事务的隔离级别
事务的回滚属性rollbackFor  等


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值