
springboot
文章平均质量分 62
官方中文文档https://junwangv.gitbook.io/spring-mvc/spring-framework/spring-core/ioc-container
余生之君
越努力,越幸运
展开
-
spring-boot-maven-plugin插件找不到含有main的主类
【背景】spring-boot项目执行mvn clean package打包时遇到一个问题,报错如下:[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.3.4.RELEASE:repackage (default) on project behavior-data: Execution default of goal org.springframework.boot:spring-boot原创 2020-10-21 18:03:05 · 6298 阅读 · 0 评论 -
重要的基础注解@import
@import的作用很简单,就是导入一个或多个bean,通常用于配置类。导入@Configuration修饰的配置bean导入ImportBeanDefinitionRegistrar的实现类导入ImportSelector的实现类可以导入一个普通的java对象,spring4.2版本之后才支持使用举例@Datapublic class A { private String name = "a";}@Datapublic class Boy { pr原创 2020-10-19 20:23:48 · 1319 阅读 · 0 评论 -
Spring容器实例bean中的几个关键PostProcessor
本文从几个spring提供的关键的PostProcessor处理器,来帮助理解spring创建bean的过程:下面是按方法执行的前后顺序排列BeanFactoryPostProcessor.postProcessBeanFactory()用来在所有的bean definitions加载后,但是还没有实例化bean之前调用本方法,所以本方法非常超前执行可以修改bean的定义,如是否是单例,是否lazy init,DependsOn,FactoryBeanName等等等等,一般用来修改属性值,一个典型原创 2020-10-09 21:12:57 · 382 阅读 · 0 评论 -
spring-security-oauth2实现OAuth2.0服务
关于OAuth的介绍查看我的另一篇文章OAuth的4种授权方式,spring-security-oauth2是实现OAuth2.0的框架,配置稍微有些繁琐,因此本文记录下大概的思路,加深印象。OAuth 2.0中主要有Authorization Service授权服务和Resource Service资源服务,他们可以在同一个应用程序中,也可以在两个应用程序中,甚至多个资源服务共享一个授权服务。spring-security提供了相应的endpoints来管理token的请求,/oauth/author原创 2020-08-09 21:03:22 · 788 阅读 · 0 评论 -
Spring 如何解决循环依赖?
在关于Spring的面试中,我们经常会被问到一个问题:Spring是如何解决循环依赖的问题的。本文主要针对这个问题,从源码的角度对其实现原理进行讲解。1. 过程演示关于Spring bean的创建,其本质上还是一个对象的创建,既然是对象,读者朋友一定要明白一点就是,一个完整的对象包含两部分:当前对象实例化和对象属性的实例化。在Spring中,对象的实例化是通过反射实现的,而对象的属性则是在...转载 2019-11-18 09:57:58 · 223 阅读 · 0 评论 -
帮你梳理springboot所有常用注解
文章目录springmvc注解1. @RestController、@ResponseBody、@Controller2. @RequestMapping、@GetMapping、@PostMapping3.@RequestBody、@PathVariable、@RequestParam4. @CrossOrigin、@InitBinder5.@ControllerAdvice、@Exceptio...原创 2019-09-28 16:56:18 · 999 阅读 · 0 评论 -
从@Transactional看事务的传播和隔离
文章目录1. transactionManager 当在配置文件中有多个TransactionManager,可以用该属性指定使用哪个事务管理器2. propagation 事务的传播行为 ,默认值为REQUIRED3. isolation 事务的隔离度 默认值为DEFAULT4. timeout 事务的超时时间 默认值为-1. 超时自动回滚5. readOnly 是否为只读事务,默认值为fal...原创 2019-02-16 19:48:17 · 2647 阅读 · 0 评论 -
CommandLineRunner、ApplicationRunner 接口
       如果我们想在项目启动后做一些事情(如加载定时任务,初始化工作),可以使用spring提供的CommandLineRunner、ApplicationRunner 接口,在容器启动成功后的最后一步回调(类似开机自启动)。1. CommandLineRunner接口/** * Interface used to indicate that a...原创 2019-02-14 21:38:27 · 4238 阅读 · 0 评论 -
springboot下MVC的MessageConverters和静态资源位置的配置
文章目录1. @EnableWebMvc 、WebMvcConfigurationSupport、WebMvcConfigurer 区别2. 配置拦截器,参数转换MessageConverters    &am原创 2019-01-25 22:13:01 · 3517 阅读 · 1 评论 -
全局性事务控制如何在springboot中配置
开发中,我们一般会利用AOP配置全局性的事务,对指定包下指定的方法(如add,update等)进行事务控制,在springboot中如何实现呢?@EnableTransactionManagement@Aspect@Configurationpublic class GlobalTransactionConfig { //写事务的超时时间为10秒 private stat...原创 2019-01-09 21:37:07 · 3465 阅读 · 3 评论 -
使用Hibernate-Validator优雅的校验参数
何为Hibernate-Validator在RESTful 的接口服务中,会有各种各样的入参,我们不可能完全不做任何校验就直接进入到业务处理的环节,通常我们会有一个基础的数据验证的机制,待这些验证过程完毕,结果无误后,参数才会进入到正式的业务处理中。而数据验证又分为两种,一种是无业务关联的规则性验证,一种是根据现有数据进行的联动性数据验证(简单来说,参数的合理性,需要查数据库)。而Hiberna...原创 2019-01-01 13:17:31 · 28531 阅读 · 1 评论 -
学习springboot基础必备
1. springboot项目运行在外部容器2. @ConfigurationProperties(key="person")3. bootstramp.yml文件是什么4. 日期格式转换5. @Autowired注解、@Resource注解的区别原创 2018-12-02 11:44:47 · 3542 阅读 · 0 评论 -
深入理解lombok
说道Lombok,可能会鲜为人知。但是在实际的开发中,它起到了很大的作用,话不多说,直入正题:一、Lombok是什么现在看一下Lombok官方对其进行的解释:Lombok官网:https://projectlombok.org第一句话,Lombok项目是一种自动接通你的编辑器和构建工具的一个Java库。接着,不用再一次写额外的getter或者equals方法。翻译到这里其实就可以,后面是对...原创 2018-12-01 20:58:13 · 372 阅读 · 2 评论 -
swagger2的使用和swagger2markup离线文档的生成(最简单的方式)
Swagger会自动根据我们的接口来生成一个html页面,在这个页面上我们可以看到所有接口信息,信息中包含了有哪些参数,每个参数代表什么意思,如果是一个带body体的请求,还会自动帮我们生成json格式的body。并且还可以像http请求工具那样进行接口请求.极大的方便了我们编写接口文档。1. 如何使用1.1 引入依赖注意版本,经常会有些意想不到的问题。 <!--swagger的依赖...原创 2018-11-25 11:43:00 · 6251 阅读 · 9 评论 -
profile之springboot
什么是profile想必大家都有这种用经历,我们开发项目的时候要有多个环境,如开发环境、测试环境、生产环境,他们的配置文件一般不同,如数据库地址。当我们要向各个环境发布程序时,需要人工处理这些配置文件,这显然麻烦且易错。有了profile,一切问题就简单了。简单讲profile就是一组配置,不同profile提供不同组合的配置,程序运行时可以选择使用哪些profile来适应环境。1. 多个配置...原创 2018-11-07 22:59:36 · 7027 阅读 · 3 评论 -
springboot项目在idea中的热部署的几种方式
1. devtools依赖方式我们在使用idea运行springboot项目时想要实现热部署,首先需要添加依赖 <dependency> <groupId>org.springframework.boot&am原创 2018-11-02 00:00:20 · 1407 阅读 · 0 评论 -
spring的aware学习
简介Spring提供的Aware接口能让Bean感知Spring容器的存在,即让Bean在初始化就可以使用Spring容器所提供的资源。 在spring中有许多继承aware接口的,常见的有: 接口 作用 备注 ApplicationContextAware 能获取Application Context调用容器的服务 常用 Application...原创 2018-08-26 18:56:08 · 1132 阅读 · 0 评论 -
spring event的事件驱动模型的最佳实践@EventListener
我们知道观察者模式可以实现代码的解耦,而spring的event模型就是这种设计模式的极佳体现。一个事件包含:事件发布、监听、和事件源。在spring中我们可以通过ApplicationContext的publishEvent方法去发布事件;通过实现实现ApplicationListener接口来自定义自己的监听器;继承ApplicationEvent类来实现事件源。下面以一个实例来说明: ...原创 2018-07-22 17:24:19 · 18194 阅读 · 0 评论 -
面向切面编程AOP的最佳入门示例
1.日志记录的实现利用切面思想可以实现许多功能,如日志记录,性能统计等,这里先简单记录利用AOP简单实现方法日志记录的工具类:@Aspect@Componentpublic class LogAspect { @Around(value = "execution(* com.jun.test.microservice..*(..))") public Object d...原创 2018-07-12 16:16:12 · 762 阅读 · 0 评论 -
springboot下使用拦截器和过滤器
1. 拦截器InterceptorSpring MVC的拦截器(Interceptor)和Filter不同,但是也可以实现对请求进行预处理,后处理。先介绍它的使用,只需要两步: 1.1 实现拦截器 实现拦截器可以自定义实现HandlerInterceptor接口,也可以通过继承HandlerInterceptorAdapter类,后者是前者的实现类。如果preHandle方法ret...原创 2018-07-01 13:29:06 · 40201 阅读 · 13 评论