04 - Spring5学习
Spring5学习笔记
一角残叶
人生如逆旅,我亦是行人
展开
-
Spring5(21)- 基于编程式事务控制【了解】
1 DAOpublic class AccountDaoImpl extends JdbcDaoSupport implements IAccountDao { @Override public Account findAccountById(Integer accountId) { List<Account> accounts = super.getJdbcTemplate().query("select * from account where id =原创 2020-06-09 15:34:43 · 129 阅读 · 0 评论 -
Spring5(20)- 基于纯注解的声明式事务控制
1 数据库配置类jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/spring5?userSSL=falsejdbc.username=rootjdbc.password=rootpackage com.tzb.config;import org.springframework.beans.factory.annotation.Value;import org.springframework..原创 2020-06-09 12:00:40 · 214 阅读 · 0 评论 -
Spring5(19)- 基于注解的事务控制
1 DAO/** * 账户的持久层实现类 */@Repository("accountDao")public class AccountDaoImpl implements IAccountDao { @Autowired private JdbcTemplate jdbcTemplate; @Override public Account findAccountById(Integer accountId) { List<Account原创 2020-06-09 11:30:31 · 189 阅读 · 0 评论 -
Spring5(18)- 基于 xml 的声明式事务控制
1 DAO接口public interface IAccountDao { /** * 根据Id查询账户 * @param accountId * @return */ Account findAccountById(Integer accountId); /** * 根据名称查询账户 * @param accountName * @return */ Account findAcco原创 2020-06-09 11:14:25 · 183 阅读 · 0 评论 -
Spring5(17)- spring 中事务控制的一组 API
1 spring事务控制需要明确第一:JavaEE体系进行分层开发,事务处理位于业务层,Spring提供了分层设计业务层的事务处理解决方案。第二:spring框架为我们提供了一组事务控制的接口。这组接口是在spring-tx-5.0.2.RELEASE.jar中。第三:spring的事务控制都是基于AOP的,它既可以使用编程的方式实现,也可以使用配置的方式实现。学习的重点是使用配置的方式实现。2 spring 中事务控制的 API2.1 PlatformTransactionManager此原创 2020-06-09 10:14:59 · 220 阅读 · 0 评论 -
Spring5(16)- 基于 注解 的 AOP 实现事务控制
1 工具类ConnectionUtils/** * 连接的工具类 */@Component("connectionUtils")public class ConnectionUtils { private ThreadLocal<Connection> tl = new ThreadLocal<>(); @Autowired private DataSource dataSource; /** * 获取当前线程的连接原创 2020-06-08 23:52:07 · 198 阅读 · 0 评论 -
Spring5(15)- 基于 xml 的 AOP 实现事务控制
1 基于 xml 的AOP实现事务控制1.1 工具类ConnectionUtilspackage com.tzb.utils;import javax.sql.DataSource;import java.sql.Connection;/** * 连接的工具类 */public class ConnectionUtils { private ThreadLocal<Connection> tl = new ThreadLocal<>();原创 2020-06-08 23:18:04 · 208 阅读 · 0 评论 -
Spring5(14)- JdbcTemplate 在 Dao 中的使用
1 DAOpublic interface IAccountDao { Account findAccountById(Integer accountId); Account findAccountByName(String accountName); void updateAccount(Account account);}public class AccountDaoImpl implements IAccountDao { private JdbcTemp原创 2020-06-08 17:16:52 · 219 阅读 · 0 评论 -
Spring5(13)- JdbcTemplate
1 JdbcTemplate 概述它是spring框架中提供的一个对象,是对原始Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。操作关系型数据的: JdbcTemplate HibernateTemplate操作nosql数据库的: RedisTemplate操作消息队列的: JmsTemplate2 入门导入依赖<dependency> <groupId>org.springframework</groupI原创 2020-06-08 16:16:11 · 209 阅读 · 0 评论 -
Spring5(12)- 基于注解的AOP配置
1 Service@Service("accountService")public class AccountServiceImpl implements IAccountService { @Override public void saveAccount() { System.out.println("执行了保存"); } @Override public void updateAccount(int i) { System原创 2020-06-08 11:43:13 · 140 阅读 · 0 评论 -
Spring5(11)- 四种通知类型
1 通知类型1.1 通知类前置通知,在切入点方法执行之前执行后置通知,在切入点方法正常执行之后执行,【它和异常通知之间只能执行一个】异常通知,在切入点方法执行产生异常之后执行最终通知,在切入点方法是否正常执行它都会在其后面执行/** * 用于记录日志的工具类 */public class Logger { // 前置通知 public void beforePrintLog(){ System.out.println("Logger类中的 before原创 2020-06-08 10:16:36 · 362 阅读 · 0 评论 -
Spring5(10)- AOP (Aspect Oriented Programming) 面向切面编程
1 AOP简单地说,就是把程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对已有的方法增强。1.1 AOP术语1.1.1 Joinpoint 连接点指被拦截到的点。在spring中,这些点指的是方法,因为 spring 只支持方法类型的连接点。1.1.2 Pointcut 切入点指要对哪些 Jointpoint 进行拦截的定义。1.1.3 Advice 通知/增强指拦截到 jointpoint 之后所要做的事情通知类型:前置通知、后置通知、异常通知、最原创 2020-06-08 08:23:31 · 211 阅读 · 0 评论 -
Spring5(9)-代理分析
1 基于接口的动态代理1.1 动态代理 /** * 动态代理: * 特点:字节码随用随创建,随用随加载 * 作用:不修改源码的基础上对方法增强 * 分类: * (1)基于接口的动态代理 * (2)基于子类的动态代理 * * 基于接口的动态代理: * 设计的类: Proxy * 提供者:JDK * 如何创建代理对象: * 使用 Proxy类中的newProxyInst原创 2020-06-07 22:12:32 · 170 阅读 · 0 评论 -
Spring5(8)- 转账案例演示事务问题
1 没有事务的转账案例1.1 DAO 实现类 @Override public Account findAccountByName(String accountName) { try { List<Account> accounts = runner.query("select * from account where name =?", new BeanListHandler<Account>(Account.class), a原创 2020-06-07 13:30:44 · 250 阅读 · 0 评论 -
Spring5(7)- spring 整合 junit
1 spring 整合 junit导入 spring 整合 junit 的 jar <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring-version}</version> </dependency>原创 2020-06-06 22:44:04 · 168 阅读 · 0 评论 -
Spring5(6)- 新注解 Configuration 和 ComponentScan,Bean
1 配置类package com.tzb.config;import com.mchange.v2.c3p0.ComboPooledDataSource;import org.apache.commons.dbutils.QueryRunner;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.spri原创 2020-06-06 21:55:13 · 338 阅读 · 0 评论 -
Spring5(5)- 基于注解的小案例
1 Dao2 Service3 bean.xml<?xml version="1.0" encoding="UTF-8"?><!--导入 spring 约束--><!--基于注解的IOC配置需要导入 context 名称空间--><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-i原创 2020-06-06 16:48:36 · 195 阅读 · 0 评论 -
Spring5(4)- 基于xml配置的小案例
1原创 2020-06-06 16:33:18 · 182 阅读 · 0 评论 -
Spring5(3)-常用注解
1 基于xml的spring IOC 配置1.1 DAOpackage com.tzb.dao;public interface IAccountDao { void saveAccount();}package com.tzb.dao.impl;import com.tzb.dao.IAccountDao;public class AccountDaoImpl implements IAccountDao { @Override public void s原创 2020-06-06 10:27:23 · 223 阅读 · 0 评论 -
Spring5(2)- 注入
1 bean 对象的三种创建方式1.1 通过构造函数创建bean对象在默认情况下,当在spring配置文件中写了一个bean标签,并提供了 class 属性,spring就会调用默认的构造函数创建对象。如果没有默认构造函数,则对象创建失败。1.2 通过静态工厂创建对象package com.tzb.factory;import com.tzb.service.IAccountService;import com.tzb.service.impl.AccountServiceImpl;/*原创 2020-06-05 16:43:32 · 164 阅读 · 0 评论 -
Spring5(1)- 入门
1 spring 体系结构2 IDEA 2020.2 新建maven项目pom.xml <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>原创 2020-06-05 11:26:52 · 232 阅读 · 0 评论