spring框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring框架相关的知识,希望对你有一定的参考价值。

基于aspectj的注解aop(会用)
  使用注解方式实现aop操作
    第一步 创建对象
    第二步 在spring核心配置文件,开启aop操作
        aop:aspectj-autoproxy
    第三步 在增强类上使用注解完成aop操作

Spring的jdbcTemplate操作

  spring框架一站式框架

    针对javaEE三层,每一层都有解决技术

      在dao层,使用jdbcTemplate

  spring对不同持久化技术的支持(jdbc,Hibemate5.0,IBatis(MyBatis),JPA)

    jdbcTemplate对jdbc进行封装

  jdbcTemplate使用和dbutils使用很相似,都对数据进行crud操作

  添加:

    1、导入相关jar包及数据库驱动jar包

    2、创建对象,设置数据库信息

    3、创建jdbcTemplate对象,设置数据源

    4、调用jdbcTemplate对象里面的方法实现操作

  修改:

  删除:

  查询:

    1、使用jdbcTemplate实现查询操作

      QueryRunner runner = new QueryRuner(datasource);

      //返回对象

      runner.query(sql,new BeanHandler<User>(User.class));

      //返回list集合

      runner.query(sql,new BeanListHander<User>(User.class));

    在dbutils时,有接口ResultSetHandler

      dbutils提供了针对不同的结果的实现类

    jdbcTemplate实现查询,有接口RowMapper

      jdbcTemplate针对这个接口没有提供实现类,得到不同的类型数据需要自己进行数据封装

    2、查询的具体实现

      第一 查询返回某一个值

        queryForObject(String sql,Class<T> requiredType)

        第二个参数返回类型是class(Integer.class)

      第二 查询返回对象

        queryForObject(String sql,RowMapper,Object ..args)

        第二个参数是 RowMapper接口,类似于dbutils里面的接口

        第三个参数是 可变参数

      第三 查询返回list集合

        query(String sql, RowMapper, Object ...args)

Spring配置连接池和dao使用jdbcTemplate

  1、spring配置c3p0连接池

    第一步 导入相关jar包

    第二步 创建spring配置文件,配置连接池

      

ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();

comboPooledDataSource.setDriverClass("com.mysql.jdbc.Driver");

comboPooledDataSource.setJdbcUrl("jdbc:mysql:///spring_jdbcTemplate"); comboPooledDataSource.setUser("root"); comboPooledDataSource.setPassword("123456");

 

  

 

      把以上代码在配置文件中进行配置

  2、dao使用jdbcTemplate

  (1)创建service和dao,配置service和dao对象,在service注入dao对象

  (2)创建jdbcTemplate对象,把模板对象注入到dao里面

  (3)在jdbcTemplate对象里面注入dataSource

Spring的事务管理

  事务概念

    1、什么是事务

      一组事务,要么全部执行,要么全部不执行。

    2、事务特性

      原子性、一致性、隔离性、持久性

    3、不考虑隔离性产生的读问题

      脏读、不可重复读、虚读(幻读)

    4、解决读问题

    (1)设置隔离级别

Spring事务管理api

  spring事务管理的两种方式

    第一种 编程式事务管理

    第二种 声明式事务管理

    (1)基于配置xml配置文件实现

    (2)基于注解实现

  spring事务管理的api介绍

    PlatformTransactionManager事务管理器

    (1)spring针对不同的dao层框架,提供接口不同的实现类

    (2)首先 配置事务管理器

搭建转账环境

  1、创建数据库表,添加数据

  2、创建service和dao类,完成注入关系

   (1)service层又叫业务逻辑层

   (2)dao层,单纯对数据库操作层,在dao层不添加业务

  3、产生问题:

    如果在一个人少了1000之后,出现异常,另一个人不会多1000

  4、解决:

    (1)添加事务解决,出现异常进行回滚操作

声明式事务管理(xml配置)

  配置文件方式使用aop思想配置

    第一步 配置事务管理器

      ctrl shift + T 查找dataSourceTransactionManager

    第二步 配置事务增强

    第三步 配置切面

声明式事务管理(注解)

  第一步 配置事务管理器

  第二步 配置事务注解

  第三步 在要使用事务的方法所在类上面添加注解







以上是关于spring框架的主要内容,如果未能解决你的问题,请参考以下文章

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段

使用实体框架迁移时 SQL Server 连接抛出异常 - 添加代码片段

Spring boot:thymeleaf 没有正确渲染片段

What's the difference between @Component, @Repository & @Service annotations in Spring?(代码片段

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段