spring
hotdust
想成为一名JAVA方向的专家,做更多更好的基于JAVA的软件。
展开
-
Spring事务配置的五种方式
from:http://www.blogjava.net/robbie/archive/2009/04/05/264003.htmlSpring事务配置的五种方式 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识。通过这次的学习发觉Spring的事务配置只要把思路理清,还是比较好掌握的。 总结如转载 2012-02-17 15:48:35 · 462 阅读 · 0 评论 -
Spring AOP源码解读1 - 程序入口
前言 最近看了《从零开始写JavaWeb框架》,想比较一下Spring AOP的实现方式和书的上实现方式有什么不同,所以先把Spring AOP的源码读一下,再进行比较。 Spring的源码实在是复杂,在读的过程中参考了很多书和网上的文章,本文算是这些文章的总结,再加上一些我自己对另个细节的理解。 本文分成 3 部分: - 程序入口 - 切面和增强的取得 - 代理的生成原创 2016-12-11 17:34:30 · 3135 阅读 · 0 评论 -
关于Spring的Aware接口和后置处理器接口(BeanPostProcessor和BeanFactoryPostProcessor)的一些想法
看了关于Aware接口和后置处理器接口(BeanPostProcessor和BeanFactoryPostProcessor),感觉他们之间的功能有点乱,说一下他们之间的区别:(1)从调用时间点上看,Aware接口的方法(都是setXXX方法)是在Bean的属性被设置之后,初始化方法初始化方法(InitializingBean接口的方法,或@PostContruct等)执行之前被调用;Bean原创 2016-10-24 10:20:47 · 2184 阅读 · 1 评论 -
SpringIOC 实例化Bean的流程
http://www.voidcn.com/blog/qq_16681169/article/p-5050775.html在网上看一个Bean实例化过程的图,写的非常棒。转过来后,在最后面加了源码的入口,有兴趣的朋友可通过入口看看源码IoC容器的初始化就是含有BeanDefinition信息的Resource的定位、载入、解析、注册四个过程,最终我们配置的b转载 2016-10-27 12:22:41 · 1679 阅读 · 0 评论 -
Spring原理-核心模块
最近想了解一下Spring的原理,看了一些文章和书还有源码,稍微了解了一点,把这些东西总结一下,方便以后回忆。一,Spring核心模块介绍在这之前,需要看一下这篇文章(https://www.ibm.com/developerworks/cn/java/j-lo-spring-principle/#icomments),这篇文章把Spring核心模块的轮廓描述的非常清晰,文章把转载 2016-11-07 22:49:29 · 2635 阅读 · 0 评论 -
Spring原理-注入依赖的过程
上面对IoC容器的初始化过程转载 2016-11-07 22:48:38 · 7070 阅读 · 2 评论 -
Spring原理-IoC容器初始化过程
IoC容器初始化过程IoC容器的两个核心接口BeanFactory和ApplicationContext大概功能都讲解了一些,接下来我们讲解一下IoC容器的初始化过程,让大家有一个深一点的理解。讲解还是以FileSystemXmlApplicationContext类作为入口进行讲解。首先我们看一段FileSystemXmlApplicationContext类中的源码: pub转载 2016-11-07 22:46:03 · 2870 阅读 · 0 评论 -
关于Spring定时任务的说明
现在使用Spring来做定时任务是非常简单的一件事,只需要像TODO里写的,加两个注解就可以实现定时任务的功能。但Spring对这块的抽象是怎么做的呢?下面来讲解一下。对于定时任务,Spring做了抽象,并形成了下面的这几个接口。 TaskExecutor TaskScheduler Trigger TriggerContextTaskE转载 2016-09-28 16:21:23 · 3269 阅读 · 0 评论 -
Spring AOP源码解读2 - 切面和增强的取得
前言 在前一篇文章 中介绍了代理处理的入口,这一章介绍代理处理的流程之一:切面和增强的取得原创 2016-12-11 17:35:16 · 1397 阅读 · 0 评论 -
Spring AOP源码解读3 - 代理的生成
前言前面两部分讲了程序入口 和 切面和增强的取得。这一部分讲解代理的创建。原创 2016-12-11 17:36:04 · 642 阅读 · 0 评论 -
SpringTest框架JUnit单元测试用例获取ApplicationContext实例的方法
from: http://www.coderli.com/junit-spring-test-applicationcontext/JUnit单元测试用例中使用Spring框架,之前我的使用方式很直接。/** * 用于需要用到Spring的测试用例基类 * * @author lihzh * @alia OneCoder * @blog http://www.coderli.com *转载 2017-07-13 23:07:00 · 10713 阅读 · 0 评论 -
Spring AOP中pointcut expression表达式解析
from: http://blog.csdn.net/kkdelta/article/details/7441829Pointcut 是指那些方法需要被执行"AOP",是由"Pointcut Expression"来描述的.Pointcut可以有下列方式来定义或者通过&& || 和!的方式进行组合. args()@args()execution()this()t转载 2017-07-10 22:16:01 · 327 阅读 · 0 评论 -
Spring MVC 测试方法
1,在测试Controller时,Spring提供了一个MockMvc的类,方便测试Controller。 这个类在spring-test包下面。下面的依赖是SpringBoot的test starter的依赖。原创 2017-01-13 09:55:42 · 1089 阅读 · 0 评论 -
Spring源码中的一段设计
模式类型在Spring的源码里看到下面一段代码,使用方法感觉挺巧妙的,记录下来一下。ReflectiveAspectJAdvisorFactory: private List getAdvisorMethods(Class aspectClass) { final List methods = new LinkedList(); // 设计巧妙的地方正是这个地方:Reflect原创 2016-12-08 15:45:42 · 610 阅读 · 3 评论 -
Spring Bean的生命周期(非常详细)
http://www.cnblogs.com/zrtqsk/p/3735273.htmlSpring作为当前Java最流行、最强大的轻量级框架,受到了程序员的热烈欢迎。准确的了解Spring Bean的生命周期是非常必要的。我们通常使用ApplicationContext作为Spring容器。这里,我们讲的也是 ApplicationContext中Bean的生命周期。而实际上Bean转载 2016-12-06 13:04:47 · 518 阅读 · 0 评论 -
《从零开始写JavaWeb框架》的AOP实现和SpringAOP实现的比较
前言 写本文本文的原因是,刚才看完《从零开始写JavaWeb框架》的AOP实现,于是想比较一下Spring的AOP实现有什么不同。本文没有想比较好坏的意思,只想看看实现方式有什么不同。原创 2016-12-11 22:26:35 · 822 阅读 · 0 评论 -
spring-reference-The IoC container的翻译笔记(自己用)
1,可以使用BeanFactory的registerSingleton(..) and registerBeanDefinition(..)方法把,不在Spring管理范围内的Bean,加到Sring当中。2,当命名Bean时,可以用id或name属性。用name属性可以给Bean起多个名字。3,可以用给Bean命名别名,这样的好处是不干扰各自的BeanDefinition定义。转载 2016-10-24 22:09:10 · 906 阅读 · 0 评论 -
关于Spring Quartz中的*号(wildcard, asterix )和?号(question mark)的不同
查了一些文章,有的说「*」代表所有值,「?」代表不确定的值,你不想设置的值。但不想设置和代表所有什么不同呢,在我看来一样。Quartz官方文档是这么说的:http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.htmlThe ‘?’ character is allo转载 2016-08-16 17:56:18 · 379 阅读 · 0 评论 -
关于Spring Data redis几种对象序列化的比较
GenericToStringSerializer: 可以将任何对象泛化为字符串并序列化 Jackson2JsonRedisSerializer: 跟JacksonJsonRedisSerializer实际上是一样的 JacksonJsonRedisSerializer: 序列化object对象为json字符串 JdkSerializationRedisSerializer: 序列化java对象 StringRedisSerializer: 简单的字符串序列化转载 2016-07-05 17:09:41 · 19665 阅读 · 0 评论 -
@component @bean区别
from:http://stackoverflow.com/questions/10604298/spring-component-versus-beanhttp://stackoverflow.com/questions/27091553/are-bean-and-component-annotations-the-same-but-for-different-targets-in-sp转载 2016-05-22 23:32:03 · 12659 阅读 · 0 评论 -
Spring MVC 的请求参数获取的几种方法
from:http://www.blogjava.net/paulwong/archive/2012/03/23/372564.html通过@PathVariabl注解获取路径中传递参数JAVA @RequestMapping(value = "/{id}/{str}") public ModelAndView helloWorld(@PathVaria转载 2016-06-03 17:43:38 · 632 阅读 · 0 评论 -
什么是POJO,为什么要用POJO
from:https://spring.io/understanding/POJOUnderstanding POJOsPOJO means Plain Old Java Object. It refers to a Java object (instance of definition) that isn't bogged down by framework extensio转载 2016-05-08 22:05:54 · 4754 阅读 · 1 评论 -
当使用使用SpringBoot时,要继承SpringBoot的POM的原因
from:https://docs.spring.io/spring-boot/docs/current/reference/html/using-boot-build-systems.htmlMaven users can inherit from the spring-boot-starter-parent project to obtain sensibledefaults. The转载 2016-05-08 09:57:17 · 4610 阅读 · 0 评论 -
@ResponseBody与ResponseEntity
第一篇文章:from:http://stackoverflow.com/questions/22725143/what-is-the-difference-between-responseentityt-and-responsebodyResponseEntity will give you some added flexibility in defining arbitr转载 2016-05-31 13:45:48 · 9957 阅读 · 0 评论 -
关于@SessionAttributes和@ModelAttribute最好的文章了
看了一下,@SessionAttributes和@ModelAttribute就是为了方便使用session.get/setAttribute和request.get/setAttribute而使用的类。from:http://my.oschina.net/rouchongzi/blog/161871?fromerr=5UlNVC2r绑定模型对象中某个属性Sprin转载 2016-04-21 23:35:19 · 1772 阅读 · 0 评论 -
关于Spring Quartz和定时任务的文章
Quartz的官方文档:http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html几个好的文章Spring定时任务:http://gong1208.iteye.com/blog/1773177Spring 3整合Quartz 2实现定时任务一:常规整合:ht转载 2016-08-16 18:15:33 · 279 阅读 · 0 评论 -
spring-quick-start例子解析
@ComponentScanspring-quick-start是SpringFrameWork的一个入门级的例子。通过这个例子,我们还是可以学到一些东西的。下面这个网址是这个例子的地址:https://projects.spring.io/spring-framework/第一步:这个例子里,首先要下载依赖的类包spring-context,我选择的是用Gradl转载 2016-09-08 22:46:32 · 1775 阅读 · 0 评论 -
使用Spring做定时任务工程
一般常使用Spring做Web工程,但如果我们只想使用Spring做一个定时任务工程的话,应该怎么用呢? 答案是,加@EnableScheduling注解。下面是一个例子,这个例子中我们使用SpringBoot组件。Starter.java(我们的启动类)public class Starter { public static void main(String[转载 2016-09-27 17:37:26 · 3963 阅读 · 0 评论 -
关于BeanFactory,FactoryBean,ObjectFactory
在看ObjectFactoryCreatingFactoryBean这个类的意思时,被FactoryBean,BeanFactory,ObjectFactory这几个接口弄的有点蒙。现在说一下这几个接口的作用:BeanFactory:这个接口用作管理Bean的容器,Spring中生成的Bean都是由这个接口的实现来管理的。FactoryBean:这个接口使你可以提供一个复杂的逻辑来生成Be转载 2016-10-10 20:15:03 · 3503 阅读 · 0 评论 -
关于Spring-Data-Mongodb中的project()的用法,和previousOperation()的用法
关于project()方法的使用1,project("name", "netPrice") project方法的内容是你要映射的字段,相当于{$project: {sumfavour: 1, userid: 1}}2,project().and("foo").as("bar") 如果你想要把一个字段映射成别一个名字的话,就可以用上面的方法,相当于{$project: {转载 2016-09-21 15:18:21 · 18335 阅读 · 5 评论 -
Spring 事务管理高级应用难点剖析
很好的一个关于Spring事务的文章,当你看完Spring官方的Transaction的文章后,可能会一些内容还不太理解,但看完下面的文章后,你可能就会感觉释然了。http://www.ibm.com/developerworks/cn/java/j-lo-spring-ts1/http://www.ibm.com/developerworks/cn/java/j-lo-spring-转载 2016-08-26 17:25:38 · 550 阅读 · 0 评论 -
几篇关于用Gradle创建Spring工程的文章
http://makble.com/gradle-example-to-build-spring-mvc-applicationhttp://www.cnblogs.com/wenjingu/p/3822989.htmlhttp://blog.csdn.net/u013285335/article/details/50529622转载 2016-09-05 23:53:13 · 511 阅读 · 0 评论 -
关于Redis的Transaction
关于Redis的Transaction,查了很多资料,现在能实现Transaction的方法有3种:1,使用SessionCallback这个方法是很多资料上都推荐的,也是现在最可靠的一种。实现方法:(例子来源于:http://docs.spring.io/spring-data/redis/docs/1.7.1.RELEASE/reference/html/#tx,进行了修改转载 2016-08-24 20:14:07 · 6433 阅读 · 0 评论 -
使用Spring Data Redis时,遇到的几个问题
需求:1,保存一个key-value形式的结构到redis2,把一个对象保存成hash形式的结构到redis转载 2016-08-23 17:33:43 · 23639 阅读 · 8 评论 -
spring aop 无法在内部嵌套的方法上生效
1,问题例子:public void method1(){ ......... method2(); ...........}public void method2(){ ............... ............... }结果:当你调用method1,并且在method1方法里面调用method2方法时,设置在method2上的“拦截/代理”是无效的。原创 2017-08-01 13:03:19 · 1806 阅读 · 0 评论