JAVA框架 Spring 事务】的更多相关文章

一.我们之前在hibernate的时候,需要直接写事务,需要绑定当前线程保证获取同一个连接,虽然hibernate的帮我们封装绑定当前现成的操作,但是需要我们手动的去开启和关闭事务. 而spring帮我们自动管理事务. 二:事务: spring 事务的隔离级别的定义:   TransactionDefinition        1. 事务隔离级别的常量            * static int ISOLATION_DEFAULT                     -- 采用数据库的…
SpringBoot和Java框架spring 学习笔记(十九):事务管理(注解管理)所讲的类似,使用@Transactional注解便可以轻松实现事务管理.…
在Java框架spring 学习笔记(十八):事务操作中,有一个问题: package cn.service; import cn.dao.OrderDao; public class OrderService { private OrderDao orderDao; public void setOrderDao(OrderDao orderDao) { this.orderDao = orderDao; } //调用dao的方法 //业务逻辑层,写转账业务 public void accou…
回见Java框架spring Boot学习笔记(十三):aop实例操作,这里介绍注解aop操作 首先编写一个切入点HelloWorld.java package com.example.spring; public class HelloWorld { public void printHello(){ System.out.println("Hello Aop."); } } 编写切面TimeHandler.java package com.example.spring; impor…
前言:在之前的博客中已经说过了数据库的事务, 不过那里面更多的是说明事务的一些锁机制, 今天来说一下Spring管理事务的一些基础知识. 之前的文章: [数据库事务与锁]详解一: 彻底理解数据库事务一, 什么是事务 事务是逻辑上一组操作,这组操作要么全都成功,要么全都失败. 事务的属性: ACID原子性(Atomicity): 事务作为一个整体被执行,包含在其中的对数据的操作要么全部被执行,要么都不执行.一致性(Consistency):事务应确保数据库的状态从一个一致状态转变为另一个一致状态.…
5.1 Spring 的事务管理 事务原本是数据库中的概念,在 Dao 层.但一般情况下,需要将事务提升到业务层,即 Service 层.这样做是为了能够使用事务的特性来管理具体的业务. 在 Spring 中通常可以通过以下两种方式来实现对事务的管理:(1)使用 Spring 的事务注解管理事务(2)使用 AspectJ 的 AOP 配置管理事务 5.2 Spring  事务管理 API Spring 的事务管理,主要用到两个事务相关的接口. (1 )  事务管理器接口( 重点) 事务管理器是…
事务操作创建service和dao类,完成注入关系 service层叫业务逻辑层 dao层单纯对数据库操作层,在dao层不添加业务 假设现在有一个转账的需求,狗蛋有10000元,建国有20000元,狗蛋向建国转账1000元钱. 编写service层创建业务逻辑,OrderService.java import cn.dao.OrderDao; public class OrderService { private OrderDao orderDao; public void setOrderDa…
注解管理的方式要比xml配置方式要简单很多 只需在配置文件中添加事务注解 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="htt…
一.概述 缓存(Caching)可以存储经常会用到的信息,这样每次需要的时候,这些信息都是立即可用的. 常用的缓存数据库: Redis   使用内存存储(in-memory)的非关系数据库,字符串.列表.集合.散列表.有序集合,每种数据类型都有自己的专属命令.另外还有批量操作(bulk operation)和不完全(partial)的事务支持 .发布与订阅.主从复制(master/slave replication).持久化.脚本(存储过程,stored procedure). 效率比ehcac…
对 Struts 的理解:1. struts 是一个按 MVC 模式设计的 Web 层框架,其实它就是一个大大的 servlet,这个Servlet 名为 ActionServlet,或是 ActionServlet 的子类.我们可以在 web.xml 文件中将符合某种特征的所有请求交给这个 Servlet 处理,这个 Servlet 再参照一个配置文件(通常为/WEB-INF/struts-config.xml)将各个请求分别分配给不同的 action 去处理.一个扩展知识点: struts…
属性注入:创建对象的时候,向类里面的属性设置值. Java属性注入有三种方法: 使用set方法注入 有参数构造注入 使用接口注入 Spring框架里面的属性注入方式 有参数构造属性注入 set方法属性注入 有参数构造属性注入 编写User.java package com.example.spring; public class User { private String name; private Integer age; private String country; //基于构造函数的属性…
当一个 bean 被实例化时,它可能需要执行一些初始化使它转换成可用状态.当bean不再需要,并且从容器中移除时,需要做一些清除工作.为了定义安装和拆卸一个 bean,我们只要声明init-method 和/或 destroy-method 参数.init-method 属性指定一个方法,在实例化 bean 时,立即调用该方法.同样,destroy-method 指定一个方法,只有从容器中移除 bean 之后,才能调用该方法. 编写HelloWorld.java package com.exam…
Spring 框架Bean支持以下五个作用域: 下面介绍两种作用域,singleton和protoype singleton作用域 singleton作用域为默认作用域,在同一个ioc容器内getBean是同一个bean,如果创建一个singleton作用域Bean定义的对象实例,该实例将存储在该Bean的缓存中,那么以后所有针对该 bean的请求和引用都返回缓存对象. 编写HelloWorld.java package com.example.spring; public class Hell…
Spring容器是Spring框架的核心,容器可以创建对象并创建的对象连接在一起,配置和管理他们的整个生命周期.Spring 容器使用依赖注入(DI)来作为管理应用程序的组件,被称为 Spring Beans. Spring提供两种不同类型的容器 ApplicationContext 容器 BeanFactory 容器 ApplicationContext 容器包括 BeanFactory 容器的所有功能,如果资源足够建议使用ApplicationContext,在资源宝贵的移动设备或者基于 a…
微服务系统架构实践 开发语言Java 8 框架使用Spring boot 服务治理框架Dubbo 容器部署Docker 持续集成Gitlab CI 持续部署Piplin 注册中心Zookeeper 服务管理Dubbo-admin 日志采集及分析ELK 链路追踪Zipkin/Tracing Analysis(阿里云) 可视化监控Prometheus + Grafana API网关Kong…
Spring MVC理解 1.servlet--Spring MVC的本质 2.Spring MVC其实是一个工具,具体的理解可以分为两步:第一步,了解这个工具是怎么创建出来的:第二步,了解这个工具是怎么用的. 3.前期使用准备:环境的搭建 ①创建WEB项目,导入jar包,Maven项目简单的加入springMVC和servlet的依赖就可以了. //Maven项目加入依赖 <dependency> <groupId>javax.servlet</groupId> &l…
新建一个templates文件夹和index.html <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8" /> <title></title> </head> <body> <h1 th:text="${host}">Hello World</h1> &l…
@Configuration作用在类上,相当于一个xml文件 @bean作用于方法上,相当于xml配置中的<bean>标签 一个例子: 新建一个Springboot工程 新建一个User类:User.java package com.springboot.test; //建立一个User对象 public class User { private String username; private String password; private Integer age; public Stri…
在pom.xml添加一下代码,添加操作MySQL的依赖jar包. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <a…
在pom.xml添加一下代码,添加操作MySQL的依赖jar包. <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <a…
Controller注解介绍 @Controller:处理http请求 @RestController: Spirng4之后新加的注解,其实是一个组合注解等同于@ResponseBody和@Controller的组合 @RequestMapping: 用于配置url映射,期望用户通过url访问方法 @PathVariable:获取url中的数据 @RequestParam:使用和@PathVariable差不多,不过以?id=来传递值 @Controller的使用 需要在以前的代码结构基础上修改…
新建一个新建一个SpringBootTest工程 新建一个HelloController.java文件 package com.example.demo; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.…
使用aop需要在网上下载两个jar包: aopalliance.jar aspectjweaver.jar 为idea添加jar包,快捷键ctrl+shift+alt+s,打开添加jar包的对话框,将刚才下载好的jar添加进去 前置增强实例 编写TimeHandler.java package com.example.spring; public class TimeHandler { public void beforTime() { System.out.println("前置增强:Curr…
配置文件和注解混合使用 创建对象操作使用配置文件方式实现 注入属性的操作使用注解方式实现 编写BookDao.java和OrderDao.java文件 BookDao.java package com.example.spring; public class BookDao { public void book(){ System.out.println("Book Dao."); } } OrderDao.java package com.example.spring; public…
注解:代码里面特殊的标记,使用注解可以完成相关功能 注解写法:@注解名称(属性名.属性值) @Required 用在set方法上,一旦用了这个注解,那么容器在初始化bean的时候必须要进行set,也就是说必须对这个值进行依赖注入. 编写Student.java package com.example.spring; import org.springframework.beans.factory.annotation.Required; public class Student { privat…
使用set方法注入对象属性 编写UserDao.java文件 package com.example.spring; public class UserDao { public void print(){ System.out.println("Dao print."); } } 编写UserService.java文件 package com.example.spring; public class UserService { //1.定义dao类型属性 private UserDa…
Spring是开源.轻量级.一站式框架. Spring核心主要两部分 aop:面向切面编程,扩展功能不是修改源代码实现. ioc:控制反转,把对象的创建交给Spring进行配置,比如一个类,在类里面有方法(不是静态的方法),想要调用类里面的方法,一般的方法是创建对象(new一个),通过new出来的这个对象调用方法.而使用Spring框架时,对象的创建不是通过new出来,而是交给Spring配置创建类对象. IOC和DI的区别 IOC:控制反转,把对象的创建交给Spring进行配置 DI:依赖注入…
子 bean 的定义继承父定义的配置数据.子定义可以根据需要重写一些值,或者添加其他值. 编写HelloWorld.java package com.example.spring; public class HelloWorld { private String message1; private String message2; public void setMessage1(String message){ this.message1 = message; } public void set…
如果我们需要在Spring容器完成Bean的实例化,配置和其他的初始化前后后添加一些自己的逻辑处理. 编写InitHelloWorld.java package com.example.spring; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; public class InitHelloWorld imple…
新建一个项目,选择Spring initializr 修改group和项目名 添加依赖包Web,MongoDB 设置保存位置和工程名 新建一个test的文件 输入代码: package com.xxx.test.spider; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import java.util.Date; import static java.lang.Thr…