Spring
专讲Spring的框架
袁小黑
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Swagger为什么不使用注释做接口描述
背景使用Swagger的时候有一种痛苦,侵入性太强了。我个人又喜欢写注释,我理解注释写得越好,越能减少沟通的交流,节省人力,提高工作效率。所以想着使用Controller的注释和实体的注释,就能替换Swagger的***注解***。全网找下来,有实现这个功能的:github,但是我使用之后发现一些bug联系不上作者,而且我不会Kotlin, 所以还是需要自己研究一下。设计pom文件依赖因为考虑想开源给大家使用,这里没有去依赖顶层的pom文件。研究swagger的源码通过研究swagger的源码发原创 2020-11-10 10:17:46 · 1821 阅读 · 0 评论 -
Spring扫描Jar包小用
近来被委派了一个改造canal-adapter的工作,如果有机会就给大家介绍一下canal。遇到一个问题:class.getClassLoader.getResource()在打成jar的时候获取不到资源。百度了一下,得到很多结果:Java代码打成jar后 classgetClassLoadergetResource()返回为nullJava读取jar包中的文件(与从工程中拿文件不同,不能用new File形式)各种劝我使用getResourceAsStream来获取文件。其实如果只是单单读一个.原创 2020-07-16 20:52:02 · 1070 阅读 · 0 评论 -
Spring的钩子方法知多少
Spring是我们经常使用的一个框架,它功能之一是提供了我们管理bean对象的手段,而且它提供了很多钩子方法给我们使用。什么是钩子方法呢?钩子方法就是:在bean的生命周期之中,经历了一系列的过程之中,Spring留给我们的一个后门,让我们能在Spring的生命周期之中执行我们想要的方法,从而实现我们想要的功能。接下来我们介绍一下生命周期,然后一个一个介绍我见过的样例或者我自己写的样例。Spring生命周期的各种AwareSpring的生命周期(我们撇开网络上很多资料,因为我觉得网络上很多资料要么不.原创 2020-07-06 21:47:59 · 2477 阅读 · 1 评论 -
6个类告诉你Spring Data Jpa的实现原理
用使用过Spring JPA的同学是不是觉得非常好用呢?还有就是Mybatis 为什么定义了一个接口就可以访问数据库了呢?这里我们实现一个简单版的。Spring JPA是怎么使用的@Repositorypublic interface UserDao extends JpaRepository<User, Long> { // 首先这是一个interface,继承interface JpaRepository ,并且模板声明操作的对象及key是什么类型 /** * 根.原创 2020-07-01 10:01:22 · 3767 阅读 · 0 评论 -
Spring是如何加载资源的
一直很好奇Spring 是如何读取那么多class文件的。经过一番探索,不卖关子,结果就在 类ClassPathScanningCandidateComponentProvider之中。如果同学们没时间细看,我可以直接告诉大家结论:Spring是通过封装Jvm 的 ClassLoader.getResources(String name)来加载资源的(包括ResourceLoader体系)。其实本人见到的很多框架的主要加载资源的手段也是通过ClassLoader.getResources() 来加载资源原创 2020-06-29 23:27:23 · 852 阅读 · 0 评论 -
Spring的Environment体系完全讲解(涉及PropertySources,Placeholder,PropertyResolver)
我个人在阅读spring的过程中将spring 分成了几个体系,因为我觉得Spring是要给非常优秀的框架,很多设计是可以给我们复用的。比如这里讲解的Spring中的Environment体系。Environment接口环境主要分类为两大部分:profile,properties继承uml图如下:图片有点大而长。但是这样才详细。profile这个功能比较简单这里不介绍了。Envirnment体系最重要的方法就是org.springframework.core.env.AbstractEnvi.原创 2020-06-28 22:58:48 · 3505 阅读 · 0 评论 -
Spring中的Transactional中为什么会有readOnly=true
Transactional是spring中集成的事务,事务有着ACID的特性。A原子性在update,insert的时候都作用比较明显。为什么Spring在Transactional中会有一个readOnly呢?我们来做一个实验:首先造一些数据: @Test public void testInsertBatch() { //insert 十万的数据 ...原创 2019-07-14 19:28:35 · 938 阅读 · 0 评论 -
Spring boot web环境检测:WebApplicationType分析
SampleWebServicesApplication最近在研究Spring,先看一个简单的例子。@SpringBootApplicationpublic class SampleWebServicesApplication { public static void main(String[] args) { SpringApplication.run(SampleWebServicesApplication.class, args); }}SpringApplication源码原创 2020-06-27 23:37:56 · 5663 阅读 · 0 评论 -
Spring的事务
目录最根本的原理 Spring的事务使用使用事务需要的配置事务的传播事务的隔离事务的回滚事务的管理其它Spring事务的原理@Transactional事务传播/隔离原理事务回滚原理事务最初只在关系型数据库中存在,关系型数据库的事务存在ACID的特性,这里不特意讲了。Spring的事务只是在拓展了对关系型数据库的事务的控制方法。最根本的原...原创 2018-11-30 19:24:44 · 161 阅读 · 0 评论 -
Spring的@Lookup
假设一个单例的Bean A需要引用一个非单例模式的Bean B,那么在每次引用B的时候都想拿到一个新的B,该怎么做?要知道,Bean A是单例模式的,只会被创建一次,注入一次属性,也就是说,即使B是property模式,那也是只会一个相同的B,因为A只会被注入一次。解决办法1.让bean A通过实现ApplicationContextAware来感知applicationContext(即...原创 2019-06-05 11:08:40 · 4814 阅读 · 0 评论
分享