前言 上一篇文章我们整合了springboot+druid+mybatis+mysql+多数据源: 本篇文章大家主要跟随你们涛兄在上一届基础上配置一下多数据源情况下的分布式事务: 首先,到底啥是分布式事务呢,比如我们在执行一个业务逻辑的时候有两步分别操作A数据源和B数据源,当我们在A数据源执行数据更改后,在B数据源执行时出现运行时异常,那么我们必须要让B数据源的操作回滚,并回滚对A数据源的操作:这种情况在支付业务时常常出现:比如买票业务在最后支付失败,那之前的操作必须全部回滚,如果之前的操作分布…
1. 使用Redis 在使用redis之前,首先要保证安装或有redis的服务器,接下就是引入redis依赖. pom.xml文件如下 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 由于在SpringBoot中默认提供了一套配置,…
原文链接: https://www.toutiao.com/i6803235766274097678/ 在learn-admin-component子工程中加入搭建环境所需要的具体依赖(因为比较长配置信息放到文档后面) 在learn-admin-webui配置jdbc.propertis 配置内容 jdbc.user=root jdbc.password= jdbc.url=jdbc:mysql://localhost:3306/project_learn?useUnicode=true&cha…
在实际的运用开发中,跟数据库之间的交互是必不可少的,SpringBoot也提供了两种跟数据库交互的方式. 1. 使用JdbcTemplate 在SpringBoot中提供了JdbcTemplate模板类,JdbcTemplate提供的方法进行增删改查的操作. 首先需要在pom文件中添加依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-sta…
数据访问 mybatis 创建一个 springboot 工程,模块选择 sql 中 mysql(数据驱动), jdbc(自动配置数据源), mybatis Web模块中选择 web pom 引入: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1…
shiro是一个权限框架,具体的使用可以查看其官网 http://shiro.apache.org/  它提供了很方便的权限认证和登录的功能. 而springboot作为一个开源框架,必然提供了和shiro整合的功能!接下来就用springboot结合springmvc,mybatis,整合shiro完成对于用户登录的判定和权限的验证. 1.准备数据库表结构 这里主要涉及到五张表:用户表,角色表(用户所拥有的角色),权限表(角色所涉及到的权限),用户-角色表(用户和角色是多对多的),角色-权限表…
https://blog.csdn.net/a67474506/article/details/52608855 Spring定义了org.springframework.cache.CacheManager和org.springframework.cache.Cache接口来统一不同的缓存技术,而SpringBoot为我们提供了自动配置多个CacheManager的实现 在不适用任何额外配置的情况下,默认使用SimpleCacheConfiguration SpringBoot通过spring…
一 RabbitMQ的介绍 RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件.这些软件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿里巴巴公司的,现已经转让给apache). 消息中间件的工作过程可以用生产者消费者模型来表示.即,生产者不断的向消息队列发送信息,而消费者从消息队列中消费信息.具体过程如下: 从上图可看出,对于消息队列来说,生产者,消息队列,消费者是最重要的三个概念,生产者发消息到消息队列中去,消费者监听指定的消息…
http://blog.csdn.net/a67474506/article/details/61640548 Dubbo是什么东西我这里就不详细介绍了,自己可以去谷歌 SpringBoot整合Dubbo的话我们首先要先对Dubbo的启动这块了解一哈 dubbo源码分析:http://blog.csdn.net/flashflight/article/details/44318447 Dubbo会注册各种解析器,因为我们这边不会在使用XML配置了,所以主要关注的地方就是这块 通过BeanDefi…
Swagger 是一个规范和完整的框架,用于生成,描述,调用和可视化RESTful风格的web服务 http://swagger.io Springfox的前身是swagger-springmvc,是一个开源的API doc框架,可以将我们的Controller接口的方法以文档的形式展现,基于swagger,这样就方便开发人员不用在开发完接口服务之后还需要手写一份文档给需要的人. 使用方式如下 引入依赖: pom.xml文件 <dependency> <groupId>io.spr…
直接访问Druid官网wiki,有详细教程,地址如下: SpringBoot支持Druid地址:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter…
1. activemq 首先引入依赖 pom.xml文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> 创建一个配置队列类 JMSConfiguration.java package com.wangx.boot.util; impo…
直接上代码,上传文件的前端页面: <body> <form action="/index/upload" enctype="multipart/form-data" method="post"> <input type="file" name="file"> <input type="submit" value="提交">…
在一般的运用开发中Controller已经大部分都能够实现了,但是也不排除需要自己实现Servlet,Filter,Listener的方式,SpringBoot提供了三种实现方式. 1. 使用Bean的实现方式 首先创建一个Servlet,一个Filter,一个Listener, DemoServlet.java package com.wangx.boot.util.servlet; import javax.servlet.ServletException; import javax.ser…
1. freemarker引擎的使用 如果你使用的是idea或者eclipse中安装了sts插件,那么在新建项目时就可以直接指定试图模板 如图: 勾选freeMarker,此时springboot项目中就会自动引入freemarker的依赖如下: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</art…
首先,引入发送邮件的依赖,由于freemarker自定义模板,所以也需要把freemarker的依赖引入 pom.xml文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>o…
对于异常的处理,Spring Boot中提供默认的一个异常处理界面,如下图: 但是在实际的运用开发中,这样的页面显然是不友好的,Spring Boot也提供了自定义异常处理的方式,如下总结三种一场处理方式 1. 实现ErrorController接口的方式 实现ErrorController接口,重写getErrorPath()方法,路径指向自定义的error页面.代码如下: package com.wangx.boot.controller; import org.springframewor…
在实际的应用开发中,可能会需要不同配置文件来支撑程序的运行,如开发,测试,预生产,生产环境等,程序在不同的环境下可能需要不同的配置,如不同数据源等,如果每次在不同的环境下都要去修改配置文件就会闲得不合理,而且很麻烦,此时就可以通过配置profiles,使程序在不同的环境中使用不同的配置文件. 1. properties文件配置方式 这种方式是将通用的配置到application.properties中,在application.properties中使用spring.profiles.activ…
本文承接上一篇文章:springboot学习笔记:8. springboot+druid+mysql+mybatis+通用mapper+pagehelper+mybatis-generator+freemarker+layui 请确保根据上一篇文章的源代码完成所有测试之后,再跟随本文,继续配置多数据源: 1.数据库准备 数据库表我们在springboot-mybatis数据之外,新建数据库springboot-mybatis2: springboot-mybatis数据库中有t_class表:…
SpringBoot学习笔记(10):使用MongoDB来访问数据 快速开始 本指南将引导您完成使用Spring Data MongoDB构建应用程序的过程,该应用程序将数据存储在MongoDB(基于文档的数据库)中并从中检索数据.关于MongoDB的相关教程可以参考其官方文档或者笔者的相关教程,我们主要探讨在SpringBoot中快速开始MongoDB数据库服务的相关操作. 本节内容的思维导图大致如下: 参考教程: https://spring.io/guides/gs/accessing-d…
SpringBoot学习笔记(1):配置Mybatis 反思:如果自己写的笔记自己都看不懂,那就不要拿出来丢人现眼! IDEA插件 Free MyBatis Plugin插件可以让我们的MyBatis开发更加便捷. XML版本配置 我们在开发Mapper时可以将SQL语句放到XML中编写,来实现一些更复杂的操作,如动态SQL.结果集映射等. 配置XML路径 我们首先需要在SpringBoot的配置文件中配置一些属性,首先是XML文件的位置: mybatis.mapper-locations=cl…
springboot 学习笔记(二) 快速创建一个springboot工程,并引入所需要的依赖 1.利用Spring initializr 来创建一个springboot项目,登陆http://start.spring.io/,看到如下界面 2.根据需要选择是maven或gradel,选择springboot版本时不建议选择snapshot版本,要选择稳定的发行版本,然后填写我们的项目包名.项目名称:group  artifact ,选择需要的依赖包,web项目常用的有  web.mybatis…
SpringBoot学习笔记(2):用Spring Security来保护你的应用 快速开始 本指南将引导您完成使用受Spring Security保护的资源创建简单Web应用程序的过程. 参考资料: SpringSecurity中文参考文档:点击进入 IBM参考文档:点击进入 使用Maven进行构建 首先,设置一个基本的构建脚本.在使用Spring构建应用程序时,您可以使用任何您喜欢的构建系统,但此处包含了使用Maven所需的代码.如果您不熟悉Maven,请参阅使用Maven构建Java项目.…
SpringBoot学习笔记(7):Druid使用心得 快速开始 添加依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>${druid-version}</version> </dependency> 配置属性 JDBC配置 spring.datasource.druid.url= # 或…
SpringBoot学习笔记(11):使用WebSocket构建交互式Web应用程序 快速开始 本指南将引导您完成创建“hello world”应用程序的过程,该应用程序在浏览器和服务器之间来回发送消息. WebSocket是一个非常薄,轻量级的TCP层.它使得非常适合使用“子协议”来嵌入消息.在本指南中,我们将深入研究并使用Spring的STOMP消息来创建交互式Web应用程序. 我们将建立一个服务用来接收一个携有用户名称的消息,然后作为回应,推送一个问候语到客户订阅的队列中. 本节内容的思维…
SpringBoot学习笔记:动态数据源切换 数据源 Java的javax.sql.DataSource接口提供了一种处理数据库连接的标准方法.通常,DataSource使用URL和一些凭据来建立数据库连接. SpringBoot默认提供了针对内存数据库的数据源,如H2.hqldb.Derby等. 配置数据源信息 当我们引入spring-boot-start-jdbc时,SpringBoot会默认使用其绑定的Tomcat-JDBC的数据源. DataSource可由spring.datasour…
SpringBoot个人感觉比SpringMVC还要好用的一个框架,很多注解配置可以非常灵活的在代码中运用起来: springBoot学习笔记: .一.aop: 新建一个类HttpAspect,类上添加两个注解:@Aspect (这个是说明aop文件)@Component(这个加载到spring容器内), HttpAspect添加日志方法: @Before("execution(public * com.imooc.controller.GirlController.*(..))")p…
1 前言 之前整理了一个spring+jotm实现的分布式事务实现,但是听说spring3.X后不再支持jotm了,jotm也有好几年没更新了,所以今天整理springboot+Atomikos+jpa+mysql的JTA分布式事务实现. Atomikos网上的资料确实比jotm多,另外我发现STS工具里集成了Atomikos,那spring对Atomikos的支持毋庸置疑肯定会在相当长的时间内会是友好的. 2 开发环境 Springboot 1.0.1 + Atomikos 3.9.3 + J…
前言 前面写过一个Springboot学习笔记(一)-线程池的简化及使用,发现有个缺陷,打个比方,我这个线程池写在一个公用服务中,各项参数都定死了,现在有两个服务要调用它,一个服务的线程数通常很多,而另一个则很少,那么线程多的服务会感觉这个线程池小,另一个又觉得浪费资源,这样很不灵活,所以希望将这个线程池被引用的时候可以自定义配置.比如在配置文件中写下线程池的核心线程数,最大线程数等等,根据不同的需要配置不同的参数. 实现 思路 前面学过[转]Spring Boot干货系列:(二)配置文件解析和…
SpringBoot学习笔记(14):使用SpringBootAdmin管理监控你的应用 Spring Boot Admin是一个管理和监控Spring Boot应用程序的应用程序.本文参考文档: 官方文档:http://codecentric.github.io/spring-boot-admin/1.5.6 GITHUB仓库:https://github.com/codecentric/spring-boot-admin 纯洁的微笑:http://www.ityouknow.com/spri…