spring boot
文章平均质量分 91
ZhaoYingChao88
学而不思则罔,思而不学则殆!
展开
-
SPRINGBOOT启动流程及其原理详解
Spring Boot、Spring MVC 和 Spring 有什么区别? 一 springboot启动原理及相关流程概览 二 springboot的启动类入口 三 单单是SpringBootApplication接口用到了这些注解 1)@Configuration注解 2)@ComponentScan注解 3)@EnableAutoConfiguration AutoConfigurationPackage注解: Import(AutoConfiguration...原创 2021-03-26 15:21:19 · 879 阅读 · 0 评论 -
Spring-statemachine有限状态机(FSM)使用教程详解
一、状态机有限状态机是一种用来进行对象行为建模的工具,其作用主要是描述对象在它的生命周期内所经历的状态序列,以及如何响应来自外界的各种事件。在电商场景(订单、物流、售后)、社交(IM消息投递)、分布式集群管理(分布式计算平台任务编排)等场景都有大规模的使用。状态机的要素:状态机可归纳为4个要素,现态、条件、动作、次态。“现态”和“条件”是因,“动作”和“次态”是果。1 现态:指当前所处的状态2 条件:又称“事件”,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移3 动作:条件原创 2021-01-18 19:48:46 · 15858 阅读 · 3 评论 -
【推荐】开源动态配置ares服务让业务飞起来,”赶超nacos、apollo,从此不再依靠 spring cloud config“
What is ARES?Open source dynamic configuration center with easy deployment and high stabilityAres系统是基于Java语言开发的,部署简单且高稳定性的动态配置系统.让您可以集中化、动态化管理自己应用中的配置.允许您的应用以监听和拉取结合的方式快速变更运行时的应用配置具有丰富的配置管理UI简化操作,同时也保障数据的隔离性与灵活性AboutAres系统目前在橙鹰公司内部使用,并稳定的原创 2020-12-31 15:30:53 · 3111 阅读 · 1 评论 -
Spring Cloud Feign java实现postman中form-data传参 文件上传下载
postman中几种传参方式区别:1.form-dataform-data主要是以键值对的形式来上传参数,同时参数之间以&分隔符分开,同时也可以上传文件,文件上传要指定文件类型,具体可以看下面的图。2.x-www-form-urlencode这种参数的传递与form-data最大的区别是,x-www-form-urlencode只能是以键值对的形式传参,不能上传文件。...原创 2020-03-12 11:43:07 · 11293 阅读 · 1 评论 -
Spring @Transactional 深度解析
事物注解方式: @Transactional当标于类前时, 标示类中所有方法都进行事物处理,例子:1 @Transactional public class TestServiceBean implements TestService {}当类中某些方法不需要事物时: 1 @Transactional 2 public class TestServiceBean i...原创 2020-02-10 17:51:21 · 725 阅读 · 0 评论 -
Reactor Mono和Flux 进行反应式编程详解
官网:https://projectreactor.io/教程:https://projectreactor.io/docs/core/release/reference/#about-docReactor的类型Reactor有两种类型,Flux<T>和Mono<T>。Flux类似RaxJava的Observable,它可以触发零到多个事件,并根据实际情况结束...原创 2019-12-24 11:08:16 · 20050 阅读 · 2 评论 -
lombok使用详细教程
lombok使用总结前提这篇文章主要介绍lombok的使用,至于lombok的源码和原理暂不探究,可以看上一篇文章插件化注解处理API去了解lombok的基本原理。参考资料:lombok官网 lombok官方教程-lombok所有特性简介Project Lombok是一个java库,它可以自动插入到编辑器中,并构建工具,使java更加丰富。再也不用getter或equals方法...转载 2019-12-23 16:50:58 · 698 阅读 · 0 评论 -
springboot升级为2.0版本, server.context-path不生效
新的项目已经将springboot升级为2.0版本了刚开始没有配置server.contextpath,默认的“/”,然后今天放到自己的服务器上,所以就要规范名称。 结果,失败了,无论我怎么配置,总是在启动后日志打印说 :path:"" 、正确方式:server.servlet.context-path:"/url"...原创 2019-02-19 10:08:56 · 841 阅读 · 0 评论 -
spring @value 注入static 注入静态变量方法
对于spring static变量下面给大家介绍spring不能注入static变量的原因,具体详情如下所示:Spring 依赖注入 是依赖 set方法set方法是 是普通的对象方法static变量是类的属性只能在setAppId方法上加注解,另外class需要加 @Component等注解,这样spring才能扫描到对于mport org.springframewo...原创 2019-02-21 16:19:25 · 33704 阅读 · 2 评论 -
Spring Aop详细教程
一、概念AOP(Aspect Oriented Programming):面向切面编程。面向切面编程(也叫面向方面编程),是目前软件开发中的一个热点,也是Spring框架中的一个重要内容。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。二、用途日志记录,性能统计,安全控制,权限管理,事务处理,异常处理,资...原创 2019-01-20 18:01:05 · 1033 阅读 · 0 评论 -
Spring Transaction使用详解
概述事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。Spring Framework对事务管理提供了一致的抽象,其特点如下:为不同的事务API提供一致的编程模型,比如JTA(Java Transaction API), JDBC, Hibernate, JPA(Java Persistence API和JDO(Java Data Objects) 支持...原创 2019-01-20 16:32:42 · 2163 阅读 · 0 评论 -
spring 跨域CORS Filter
方案一spring中可以采用的跨域配置方式如下:RequestMapping在一般性的配置中,在controller前添加@CrossOrigin即可使用spring的默认配置,允许跨域该注解也可以配置一些设定,适合针对个别的controller@CrossOrigin方案二webconfig的方式配置全局跨域@Configurationpublic class Jx...原创 2019-01-18 09:44:37 · 18955 阅读 · 1 评论 -
Spring Boot logback日志配置超详细配置(同步、异步)基于时间文件大小分割限制日志大小
正确配置这里我使用的是springboot所以的 application.properties 文件增加 logging.config=classpath:logback-spring.xml // 指定日志配置文件根目录增加 logback-spring.xml 配置文件logback-spring.xml 配置文件注:<rollingPolicy> 标签...原创 2018-12-18 09:59:11 · 10614 阅读 · 0 评论 -
SpringBoot注解大全
SpringBoot注解大全一、注解(annotations)列表@SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。@Configuration 等同于sp...转载 2018-12-11 14:59:51 · 303 阅读 · 0 评论 -
Spring boot 文件上传commons-fileupload
错误返回:Required request part 'file' is not present请检查你是否引入了这个jar包自带了upload files的配置1.如果没有上传文件时需要引入并在webMvc配置 <!-- fileupload --> <dependency> <gro...原创 2018-12-10 21:23:25 · 2652 阅读 · 0 评论 -
spring-boot不同包结构下,同名类冲突导致服务启动失败解决方案
项目背景: 两个项目的包结构和类名都很多相同,于是开始考虑使用加一级包进行隔离,类似于这种结构但是在启动的过程中,抛出来这样的异常: 1 2 3 4 5 6 7 8 9 Caused by: org.springframework.context.annotation.Conflictin...原创 2018-12-03 12:57:59 · 19680 阅读 · 5 评论 -
Spring Boot ThreadPoolTaskExecutor使用
初始化线程池@Configuration@EnableAsyncpublic class TaskExecutorConfiguration implements AsyncConfigurer { @Override public Executor getAsyncExecutor() { ThreadPoolTaskExecutor taskExecu...原创 2019-02-28 16:11:41 · 2966 阅读 · 0 评论 -
spring boot Scheduled使用
spring boot: 计划任务@ EnableScheduling和@Scheduledspring boot: 计划任务@ EnableScheduling和@Scheduled@Scheduled中的参数说明 1 2 3 4 5 6 7 @Scheduled(fixedRate=2000):上一次开始执...原创 2019-02-28 16:18:49 · 329 阅读 · 0 评论 -
springboot ControllerAdvice 类似上传超出文件大小异常无法捕获问题详解及解决方式
spring boot/mvc通过@RestControllerAdvice或者@ControllerAdvice配合@ExceptionHandler实现全局异常统一处理在spring web项目开发中,我们经常会遇到各种exception,这些exception根据业务或者场景不同抛出不同的信息和返回类型,有的exception需要返回json数据格式的错误,有的exceptio...原创 2019-03-04 12:43:59 · 6857 阅读 · 6 评论 -
swagger基本使用
在spring-boot中使用以前总是看各种博客来配置,这次也不例外。百度了千篇一律却又各有细微的差别,甚至时间上、版本上各有不同。最终还是去看官方文档,终于发现了官方的sample。针对于各种option的操作完全在demo中了,所以clone照抄就可以用了。github sample源码配置1.需要依赖两个包: <dependency> &l...原创 2018-06-08 17:46:09 · 2360 阅读 · 0 评论 -
解决Spring Boot 使用RedisTemplate 存储键值出现乱码
java redis存储键值包含\xac\xed\x00\x05t\x00\特殊字符javaRedisTemplate操作redis后,想看一下是否成功,就redis-cli执行:keys *1)"\xac\xed\x00\x05t\x00\x04name"2)"a"3)"siteName"4)"\xac\xed\x00\x05t\x00\bsiteName"5)...原创 2019-09-27 20:02:45 · 2863 阅读 · 1 评论 -
Spring框架中Bean的生命周期及加载顺序
Spring容器中的Bean是有生命周期的Spring允许在Bean在初始化完成后以及Bean销毁前执行特定的操作,常用的设定方式有以下三种:通过实现InitializingBean/DisposableBean接口来定制初始化之后/销毁之前的操作方法; 通过<bean>元素的init-method/destroy-method属性指定初始化之后/...原创 2019-04-29 09:55:43 · 5086 阅读 · 2 评论 -
spring boot 2 上传文件大小限制的配置不生效解决方式
上传文件文件过大时出现如下错误:org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field pic exceeds its maximum permitted size of 10485760 bytes.因为springboot内置tomact的的文...原创 2019-04-08 15:53:14 · 23992 阅读 · 14 评论 -
Spring简单使用简介
Spring简介Spring是Java的开源企业应用程序开发框架,它为Java beans控制容器的翻转。最初由Rod Johnson在2003年6月基于Apache2.0许可证发布。Spring框架处理底层,使我们能够专注于应用程序逻辑。 Spring能够从POJOs(Plain Old Java Objects)非侵入式的构建应用程序。比如:•不需要处理servlet或servlet...转载 2019-03-27 11:33:47 · 604 阅读 · 0 评论 -
玩转Spring JUnit+mockito+powermock单元测试(使用详解)
说明:请耐心看完。。。Spring中执行单元测试,最麻烦的就是解决Bean的定义以及注入的问题。最开始使用Spring的上下文初始化进行测试,开头是这样的:@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("/config/Spring-db1.xml") 或者@RunWith(SpringRunn...原创 2019-03-27 11:17:38 · 17811 阅读 · 1 评论 -
spring @Value注入map、List、Bean、static变量方式及详细使用
使用@Value注入map、List实体类List: @Value("${test.list.ids:1,2,3}") private List<String> testList;或者 @Value("${test.list.ids:1,2,3}") private String[] testList;List 指定分隔符...原创 2019-03-22 19:12:05 · 40607 阅读 · 5 评论 -
Spring Boot Junit 单元测试详解
前言JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量。JUnit 测试框架具有以下重要特性:测试工具 测试套件 测试运行器 测试分类了解 Junit 基础方法加入依赖在pom.xml中加入依赖: 1 2 3 4 5 6 ...原创 2019-03-25 20:26:52 · 5133 阅读 · 0 评论 -
spring整合redis 的操作类
使用 spring-data-redis 整合 redis 后,扫描该类,注入就可以使用了.在 service 注入方式加入此类即可使用。工具类code:import java.util.Collection;import java.util.HashSet;import java.util.List;import java.util.Map;import java.util.S...原创 2019-03-14 21:33:06 · 770 阅读 · 1 评论 -
Spring Boot事务管理详解
什么是事务?我们在开发企业应用时,对于业务人员的一个操作实际是对数据读写的多步操作的结合。由于数据操作在顺序执行的过程中,任何一步操作都有可能发生异常,异常会导致后续操作无法完成,此时由于业务逻辑并未正确的完成,之前成功操作数据的并不可靠,需要在这种情况下进行回退。事务的作用就是为了保证用户的每一个操作都是可靠的,事务中的每一步操作都必须成功执行,只要有发生异常就回退到事务开始未进行操作的...原创 2018-11-28 17:38:21 · 12974 阅读 · 5 评论 -
spring boot去除扫描自动注入依赖方法——Spring常用注解使用方法
问题:最近做项目的时候,需要引入其他的jar。然后还需要扫描这些jar里的某些bean。于是使用注解:@ComponentScan这个注解直接指定包名就可以,它会去扫描这个包下所有的class,然后判断是否解析:源码:public @interface SpringBootApplication { @AliasFor( annotation = En...原创 2018-11-28 15:15:27 · 8324 阅读 · 0 评论 -
Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的时候我们要保证我们缓存的方法对...原创 2018-08-10 15:34:09 · 1050 阅读 · 0 评论 -
Springboot Drools kie 规则重新加载
前言 目前世面上中文的KIE DROOLS Workbench(JBOSS BRMS)的教程几乎没有,有的也只有灵灵碎碎的使用机器来翻译的(翻的不知所云)或者是基于老版本的JBOSS Guvnor即5.x的一些教程,而且这些教程都是”缺胳膊少腿“的,初学者看后不知道它到底在干吗?能干吗?能够解决自己系统中什么问题。 什么是规则引擎 规则是让业务人士驱动整个企业...原创 2018-08-01 14:11:52 · 7239 阅读 · 0 评论 -
Spring FeignClient使用
FeignClient与RestTemplate的区别比较简单研究题外:个人觉得可能还没达到那种境界,还体会不到真正的实质性区别,就好比用HttpClient可以实现的用FeignClient同样可以实现,反之也是。JAVA 项目中接口调用怎么做 ?Httpclient Okhttp Httpurlconnection RestTemplate上面是最常见的几种用法,我们今天要...原创 2018-07-30 20:35:52 · 17748 阅读 · 3 评论 -
Hystrix 使用
Hystrix是Netflix开源的一款容错系统,能帮助使用者码出具备强大的容错能力和鲁棒性的程序。如果某程序或class要使用Hystrix,只需简单继承HystrixCommand/HystrixObservableCommand并重写run()/construct(),然后调用程序实例化此class并执行execute()/queue()/observe()/toObservable()。...原创 2018-07-30 14:32:13 · 769 阅读 · 0 评论 -
spring boot Schedule 定时任务
我们在编写Spring Boot应用中经常会遇到这样的场景,比如:我需要定时地发送一些短信、邮件之类的操作,也可能会定时地检查和监控一些标志、参数等。创建定时任务在Spring Boot中编写定时任务是非常简单的事,下面通过实例介绍如何在Spring Boot中创建定时任务,实现每过5秒输出一下当前时间。在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置...原创 2018-06-09 14:33:14 · 495 阅读 · 0 评论 -
spring swagger使用
http://www.jianshu.com/p/0465a2b837d2 swagger用于定义API文档。好处:前后端分离开发API文档非常明确测试的时候不需要再使用URL输入浏览器的方式来访问Controller传统的输入URL的测试方式对于post请求的传参比较麻烦(当然,可以使用postman这样的浏览器插件)spring-boot与swagger的集成简单的一逼1、项目结构和上一节一样...原创 2018-06-09 14:26:58 · 470 阅读 · 0 评论 -
Spring Boot配置加载
Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,方便配置呢?查询官网,可以得到下面的几种方案:通过命令行指定SpringApplication会默认将命令行选项参数转换为配置信息例如,启动时命令参数指定:java -jar myproject.jar --server.port = 9000从命令行指定配...原创 2018-06-01 16:27:30 · 669 阅读 · 0 评论 -
swagger swagger-codegen 使用
前后端分离的时候,需要建立契约,Swagger可达到该目的(略)。建立Rest接口后,通过swagger-codegen项目可以自动生成对应的客户端代码(c++、php、java、js、node等等),关于swagger-codegen项目的使用,发现中文文档较少,追根述源后,发现其中相当一部分同出一辙。亲自摸索使用后,记录一下步骤,利己利人。swagger-codegen项目地址: https:...原创 2018-06-21 15:42:46 · 4325 阅读 · 1 评论 -
SpringData JdbcTemplate Jdbc使用简介
SpringData入门以及为什么学习SpringData写在最前:学习一项新的技术,一个新的框架,总是要基于某个问题去学习,而不能是为了学框架而学框架,这样不仅学习过程痛苦,学习成效也不高。俗话说,熟能生巧,大概说的是使用的多了就用起来就顺手了的意思,如果单纯是为了学习而学习,而没有去实践它,学了也会很快就忘记。所以,在这个入门,我会从最简单的jdbc,到使用Spring的JdbcTemplat...转载 2018-06-11 17:22:35 · 2208 阅读 · 0 评论 -
springcloud-eureka详解
前言Oracle转让Java,各种动态语言的曝光率上升,Java工程师的未来在哪里?我觉得Spring Cloud让未来有无限可能。拖了半年之久的Spring Cloud学习就从今天开始了。中文教材不多,而且大多都是简单的离散的信息,想要找到企业级的一体化解决方案很少。不过,对于入门来说,简单就够了,等到用的时候自然而然的汇总起来。目标是把springcloud的子项目过一遍。ComponentE...转载 2018-05-18 14:55:18 · 759 阅读 · 1 评论