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 等
spring 4.0 粗略学习笔记
最新推荐文章于 2024-05-06 19:12:28 发布