SpringBoot
欧拉兔
vfrvwr
展开
-
SpringBoot整合RabbitMQ的五种模式示例
RabbitMQ提供了6种消息模型,但是第6种其实是RPC,并不是MQ,因此不予学习。那么也就剩下5种。基本消息模型:生产者–>队列–>一个消费者 work消息模型:生产者–>队列–>多个消费者共同消费 订阅模型-Fanout:广播,将消息交给所有绑定到交换机的队列,每个消费者都可以收到同一条消息 订阅模型-Direct:定向,把消息交给符合指定 roting...原创 2020-01-19 17:36:19 · 1314 阅读 · 1 评论 -
Spring Boot使用-@Async:线程池的优雅关闭
问题现象在之前文章的例子中,我们定义了一个线程池,然后利用@Async注解写了3个任务,并指定了这些任务执行使用的线程池。在上文的单元测试中,我们没有具体说说shutdown相关的问题,下面我们就来模拟一个问题现场出来。第一步:如前文一样,我们定义一个ThreadPoolTaskScheduler线程池:@SpringBootApplicationpublic class Appl...原创 2019-03-16 21:22:44 · 6449 阅读 · 0 评论 -
Spring Boot-@Async实现异步调用:使用Future以及定义超时
定义异步任务首先,我们先使用@Async注解来定义一个异步任务,这个方法返回Future类型,具体如下:@Slf4j@Componentpublic class Task { public static Random random = new Random(); @Async("taskExecutor") public Future<String&...原创 2019-03-16 20:56:12 · 1958 阅读 · 0 评论 -
Spring Boot-常用注解和简单使用
常用注解@SpringBootApplication前几章,在系统启动类里面,都加入了此启动注解,此注解是个组合注解,包括了@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan注解。 @SpringBootConfiguration 继承至@Configuration,对于熟悉spring的开发者而言,此...原创 2019-03-12 00:36:00 · 170 阅读 · 0 评论 -
Spring Boot-日志配置
Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J,Log4J2和Logback。每种Logger都可以通过配置使用控制台或者文件输出日志内容。格式化日志默认的日志输出如下:2016-04-13 08:23:50.120 INFO 37397 --- [ ...原创 2019-03-12 00:34:10 · 133 阅读 · 0 评论 -
Spring Boot-Admin使用
Spring Boot ActuatorActuator是Spring Boot的模块,它在应用中添加了REST/JMS端点,方便监控和管理应用。端点提供了健康检查、指标监控、访问日志、线程转储、堆转储和环境信息等等。Spring Boot AdminActuator功能强大,便于其他应用使用端点(只需要简单的REST调用)。但是开发人员使用时就没那么方便了。对于开发人员,有良好的交互...原创 2019-03-11 23:42:28 · 267 阅读 · 0 评论 -
Spring Boot使-用@Async实现异步调用:自定义线程池
Spring异步线程池的接口类,其实质是java.util.concurrent.ExecutorSpring 已经实现的异常线程池:1. SimpleAsyncTaskExecutor:不是真的线程池,这个类不重用线程,每次调用都会创建一个新的线程。2. SyncTaskExecutor:这个类没有实现异步调用,只是一个同步操作。只适用于不需要多线程的地方3. Concurren...原创 2019-03-16 01:02:54 · 214 阅读 · 0 评论 -
Spring Boot-使用@Async实现异步调用
什么是“异步调用”?“异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行;异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序。同步调用下面通过一个简单示例来直观的理解什么是同步调用: 定义Task类,创建三个处理函数分别模拟三个执行任务的操作,操作消耗时间随机取(10秒内) @Comp...原创 2019-03-16 00:40:59 · 162 阅读 · 0 评论 -
Spring Boot-应用的后台运行配置
在介绍后台运行配置之前,我们先回顾一下Spring Boot应用的几种运行方式:运行Spring Boot的应用主类 使用Maven的Spring Boot插件mvn spring-boot:run来运行 打成jar包后,使用java -jar运行我们在开发的时候,通常会使用前两种,而在部署的时候往往会使用第三种。但是,我们在使用java -jar来运行的时候,并非后台运行。下面我们分别...原创 2019-03-16 23:23:51 · 219 阅读 · 0 评论 -
Spring Boot-多数据源配置与使用
在单数据源的情况下,Spring Boot的配置非常简单,只需要在application.properties文件中配置连接参数即可。但是往往随着业务量发展,我们通常会进行数据库拆分或是引入其他数据库,从而我们需要配置多个数据源,下面基于之前的JdbcTemplate和Spring-data-jpa例子分别介绍两种多数据源的配置方式。多数据源配置创建一个Spring配置类,定义两个Data...原创 2019-03-18 18:46:01 · 188 阅读 · 0 评论 -
SpringBoot全局异常处理
前言估计大家都会了的,我就是做个笔记而已。本文代码为主,在做Web应用的时候,请求处理过程中发生错误是非常常见的情况,那我们如何才能统一且友好地返回系统异常给前台呢。关键在于:注解@ControllerAdvice和@ExceptionHandler开始通过使用@ControllerAdvice定义统一的异常处理类,而不是在每个Controller中逐个定义。@ExceptionH...原创 2019-08-22 16:50:44 · 177 阅读 · 0 评论 -
SpringBoot整合Redis-Cluster集群
1.添加相关依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>2.添加redis配置# Red...原创 2019-07-04 00:57:04 · 10506 阅读 · 0 评论 -
SpringBoot整合Redis-哨兵主从服务
1.配置application.properties##单服务器spring.redis.host=39.107.119.256##单端口spring.redis.port=6381## 连接池最大连接数(使用负值表示没有限制) spring.redis.pool.max-active=300## Redis数据库索引(默认为0) spring.redis.database=...原创 2019-07-04 00:45:46 · 776 阅读 · 0 评论 -
Spring Boot-使用YML文件配置多环境
两种配置方式 1:在一个yml文件中,2:在多个yml文件中1 一个yml文件application.ymlspring: profiles: active: dev---#开发环境配置spring: profiles: devserver: port: 1000---#测试环境配置spring: profiles: stgserve...原创 2019-06-21 22:55:00 · 7651 阅读 · 1 评论 -
利用Zookeeper实现 - 实现分布式锁
Curator提供了zk场景的绝大部分实现,使用Curator就不必关心其内部算法,Curator提供了来实现分布式锁,用方法获取锁,以及用方法释放锁,同其他锁一样,方法需要放在finakky代码块中,确保锁能正确释放。1.添加Maven依赖<dependency> <groupId>org.apache.curator</group...原创 2019-06-12 01:02:25 · 183 阅读 · 0 评论 -
使用Docker部署SpringBoot项目
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 Spring Boot 项目,然后给项目添加 Docker 支持,最后对项目进行部署。1.创建一个简单 Spring Boot 项目pom.xml在pom文件中添加对应的依赖。<parent> ...原创 2019-06-06 01:24:32 · 116 阅读 · 0 评论 -
Spring Security 详解
Spring Security 模块核心模块 - spring-security-core.jar:包含核心验证和访问控制类和接口,远程支持的基本配置API,是基本模块 远程调用 - spring-security-remoting.jar:提供与 Spring Remoting 集成 网页 - spring-security-web.jar:包括网站安全的模块,提供网站认证服务和基于U...原创 2019-04-10 19:29:37 · 472 阅读 · 0 评论 -
Spring Boot-集成RabbitMQ
1.简单队列1.1配置pom文件主要是添加spring-boot-starter-amqp的支持<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId>&...原创 2019-04-04 23:31:21 · 142 阅读 · 0 评论 -
Spring Boot-如何扩展XML请求和响应的支持
在之前的所有Spring Boot教程中,我们都只提到和用到了针对HTML和JSON格式的请求与响应处理。那么对于XML格式的请求要如何快速的在Controller中包装成对象,以及如何以XML的格式返回一个对象呢?实现原理:消息转换器(Message Converter)在扩展上述问题之前,我们先要知道Spring Boot中处理HTTP请求的实现是采用的Spring MVC。而在...原创 2019-03-15 23:43:38 · 255 阅读 · 0 评论 -
Spring Boot-配置错误页面(404、500等)
在项目中为了友好化,对于错误页面,我们常常会使用自定义的页面。SSM框架组合时代,我们通常通过拦截或者在web.xml中设置对于错误码的错误页面:<error-page> <error-code>404</error-code> <location>/error/404.jsp</location></err...原创 2019-03-15 23:19:21 · 2229 阅读 · 1 评论 -
SpringBoot-使用Redis数据库
1.单机版整合1.1配置文件信息# REDIS (RedisProperties)# Redis数据库索引(默认为0)spring.redis.database=0# Redis服务器地址spring.redis.host=localhost# Redis服务器连接端口spring.redis.port=8090# Redis服务器连接密码(默认为空)spring.red...原创 2019-03-09 21:41:44 · 529 阅读 · 0 评论 -
自动装配
@Configuration和@BeanSpring提供了注解@Configuration和@Bean注解用来配置多个Bean,在以前的Spring项目中可以通过xml的方式配置:<beans> <bean id=”xxxBean” class="aaa.bbb.xxxBean"></bean></beans>采用Configur...原创 2019-03-07 01:46:36 · 189 阅读 · 0 评论 -
Spring Boot-Servlet使用
Web开发使用Controller 基本上可以完成大部分需求,但是我们还可能会用到 Servlet、Filter、Listener、Interceptor 等等。当使用Spring-Boot时,嵌入式Servlet容器通过扫描注解的方式注册Servlet、Filter和Servlet规范的所有监听器(如HttpSessionListener监听器)。Spring boot 的主 Servlet...原创 2019-03-14 01:18:23 · 155 阅读 · 0 评论 -
读取properties配置文件中的数据
Spring Boot最常用的3种读取properties配置文件中数据的方法:1.使用@Value注解读取直接通过@Value注解注入一个配置信息到Spring管理的 Bean中。默认读取的是application.properties。application.propertiesdemo.name=Namedemo.age=18java代码import ...原创 2019-03-06 22:42:33 · 2372 阅读 · 0 评论 -
Spring Boot--Undertow
UndertowUndertow 是红帽公司开发的一款基于 NIO 的高性能 Web 嵌入式服务器 Untertow 的特点: 轻量级:它是一个 Web 服务器,但不像传统的 Web 服务器有容器概念,它由两个核心 Jar 包组成,加载一个 Web 应用可以小于 10MB 内存 Servlet3.1 支持:它提供了对 Servlet3.1 的支持 WebSocket 支持:对 We...原创 2019-03-06 00:36:21 · 309 阅读 · 0 评论 -
application.properties 常见配置
spring.config.name =#配置文件名(默认 为 'application' ) spring.config.location =#配置文件的位置 # 多环境配置文件激活属性spring.profiles.active=dev #加载application-dev.properties配置文件内容 application-dev.properties: ...原创 2019-03-06 00:20:10 · 4942 阅读 · 0 评论 -
SpringBoot--整合Mybatis
实现1、添加mybaits依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artif...原创 2019-03-06 00:10:30 · 123 阅读 · 0 评论 -
SpringBoot入门篇--关于properties和yml两种配置文件
我们在使用SpringBoot这个框架的时候都一定使用或者说是见到过application.properties或者是application.yml,经不住有人就会问这俩文件到底是什么情况,其实说白了这两个都是SpringBoot留下的配置文件,都可以进行配置,接下来我们就讲讲他们两个的一些区别。 首先我们最关注的应该是格式问题,两个文件在进行配置的时候的格式都是一样的么?p...原创 2019-03-05 22:11:30 · 593 阅读 · 0 评论 -
Redis序列化方式比较
1.Spring-Data-Redis支持的序列化策略SpringBoot默认提高StringRedisTemplate和RedisTemplate,前者用于操作包含字符串的数据机构,后者则使用了JDK自带的序列化策略。事实上StringRedisTemplate继承了RedisTemplate,对key、value、hashkey、hashvalue提供了不同的序列化策略:pub...原创 2019-03-09 23:20:35 · 2607 阅读 · 0 评论 -
SpringBoot使用Redis发布订阅pub/sub
1.消息发送RedisTemplate支持Pub/Sub功能,调用convertAndSend方法可以发送一条消息: @Autowired private RedisTemplate<String, String> redisTemplate; /** * redis生产者测试 * @param data * @ret...原创 2019-03-10 18:53:40 · 6570 阅读 · 0 评论 -
定时任务-cron表达式详解
一、 语法 Cron表达式是一个字符串,从Spring4.x版本后,不再进行年份的支持。该字符串以5个空格隔开,分为6个域,每一个域代表一个含义。语法如下: seconds minuteshoursdaysOfMonthmonthsdaysOfWeek 有兴趣的同学可以参考Cron表达式解析类:org.springframework.scheduling.su...原创 2019-03-15 19:41:02 · 1270 阅读 · 0 评论 -
Spring Boot-定时任务
目录1.创建任务类2.开启定时任务3.执行时间的配置4.多线程处理定时任务1.创建任务类@Componentpublic class SchedulerTask1 { private Log log= LogFactory.getLog(SchedulerTask1.class); @Scheduled(cron = "0/5 * * * * *")...原创 2019-03-15 17:51:42 · 275 阅读 · 0 评论 -
使用Redis Cache
Maven配置 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId> </depende...原创 2019-03-11 16:17:45 · 1175 阅读 · 0 评论 -
Spring Boot —Cache使用
1 Spring缓存抽象Spring从3.1开始定义了org.springframework.cache.Cache和org.springframework.cache.CacheManager接口来统一不同的缓存技术;并支持使用JCache(JSR-107)注解简化我们开发; Cache接口为缓存的组件规范定义,包含缓存的各种操作集合; Cache接口下Spring提供了各种...原创 2019-03-11 03:54:46 · 310 阅读 · 0 评论 -
SpringBoot 多环境配置
在我们的实际开发中,一般都有三套环境,开发环境,测试环境,生产环境,三套环境的数据库连接配置也有所不同,比如,端口,IP地址等等。如果在打包时候都频繁的修改配置文件信息,那必将是非常容易出错的地方。在SpringBoot多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,例如:(1)application-...原创 2019-03-07 17:57:26 · 197 阅读 · 0 评论 -
Spring Boot-拦截器
Web开发中,我们除了使用 Filter 来过滤请web求外,还可以使用Spring提供的HandlerInterceptor(拦截器)。HandlerInterceptor 的功能跟过滤器类似,但是提供更精细的的控制能力:在request被响应之前、request被响应之后、视图渲染之前以及request全部结束之后。我们不能通过拦截器修改request内容,但是可以通过抛出异常(或者返回fal...原创 2019-03-15 02:08:39 · 315 阅读 · 0 评论 -
Spring Boot-启动时加载数据CommandLineRunner
实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求。为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。创建一个类实现CommandLineRunner接口,将要实现功能的代码放在实现的run方法中:@Componentpublic class MyStartupRunner imple...原创 2019-03-14 22:37:07 · 313 阅读 · 0 评论 -
Spring Boot-过滤器、监听
Web开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到Filter、Listener等等。在使Spring Boot时,在 SpringBootApplication 上添加@ServletComponentScan注解后Filter、Listener可以直接通过@WebFilter、@WebListener 注解自动注册,无需其他代码:@Spr...原创 2019-03-14 21:48:38 · 137 阅读 · 0 评论 -
Hikari连接池配置说明
## 数据库配置spring.datasource.type=com.zaxxer.hikari.HikariDataSourcespring.datasource.driverClassName = com.mysql.jdbc.Driverspring.datasource.url = jdbc:mysql://localhost:3306/ssm?useUnicode=true&...原创 2019-03-05 21:52:13 · 19051 阅读 · 0 评论