
spring
文章平均质量分 84
aitangyong
成长最快、最好的方式就是交流和总结!
展开
-
spring框架的XML扩展特性:让spring加载和解析你自定义的XML文件
Spring框架从2.0版本开始,提供了基于Schema风格的XML扩展机制,允许开发者扩展最基本的spring配置文件(一般是classpath下的spring.xml)。试想一下,如果我们直接在spring.xml中加入一个自定义标签,会发生什么呢?spring框架启动的时候会报错,因为spring根本不认识我们自定义的,这样对spring.xml的校验就会失败,最终结果就是框架不能启动。有什原创 2014-04-13 15:40:12 · 9432 阅读 · 1 评论 -
spring容器初始化时候遇到的死锁问题
spring容器在初始化bean的时候,会对singletonObjects对象加锁;我们自己在afterPropertiesSet()方法中开启了一个线程,最终也会触发spring加载另外的bean。第一个线程(初始化spring的main线程)还没有释放锁,第二个线程(自己开启的线程),也需要获取singletonObjects对象锁,这样就出现了死锁原创 2016-11-04 17:46:02 · 4681 阅读 · 2 评论 -
spring配置文件中<bean>的id和name属性区别,以及identifier和aliases
标识符和别名没有任何区别,所以id和name属性唯一的差别在于:id只能设置一个标识符,而name可以设置多个标识符separated by a comma (,), semicolon (;), or white space。原创 2016-02-03 15:50:00 · 8170 阅读 · 0 评论 -
再谈spring mvc中的root/child WebApplicationContext
spring mvc只拦截特定路径的url,项目还提供了一个外部的servlet,给别的子系统调用,这个servlet不在spring mvc拦截路径范围内。我们在这个servlet里面不能获取到spring mvc的WebApplicationContext。我猜测原因是:我们的请求没有经过spring拦截,spring没有将child WebApplicationContext塞入到request对象中。目前没有想到特别好的解决方式,使用了spring框架的ApplicationContextAware原创 2016-02-15 17:02:02 · 1258 阅读 · 0 评论 -
spring websocket stomp如何向服务端传递参数
html页面中通过stomp给服务端传递参数有2种方式:在消息头中添加参数,使用使用@Header或者@Headers接收;在路径中添加参数,使用@DestinationVariable接收。原创 2016-02-15 09:43:18 · 15888 阅读 · 0 评论 -
spring xml读取Properties文件中的加密字段
使用PropertyPlaceholderConfigurer读取properties文件,继承PropertyPlaceholderConfigurer实现properties文件中字段值的解密原创 2016-01-28 16:29:50 · 3943 阅读 · 0 评论 -
使用spring websocket stomp遇到的3个问题总结:路径匹配/自动注入/activemq连接超时
之前的这篇博客,详细地描述了如何搭建一个spring websocket工程,经过后面的实践发现了3个问题,这里总结下。1.我们spring mvc的servlet拦截的是/*,这个范围太大,能不能只拦截特定更具体的url?2.我们使用SimpMessagingTemplate发送消息,这个bean到底是谁帮我们注入的?我们并没有显示地配置这个bean,也没有扫描某个目录,但显然这个bean是确确实实存在的。3.我们的页面挂一阶段,发现浏览器控制台和activemq后台报错了,这个时候不能再发送和接收原创 2016-01-25 19:05:23 · 18891 阅读 · 4 评论 -
搭建Spring4.1与Spring4.2 websock+stomp+activeMQ需要注意事项:spring4不同版本websocket差异
报错原因是:spring4.2.4版本使用的是reactor-net-2.0.7.RELEASE,但是spring4.1.4版本不能使用这个版本。下面源码是4.1.4版本的,需要reactor.io.encoding.Codec这个类,而这个类在reactor-core-2.0.7.RELEASE中删除了,但是reactor-core-1.1.6.RELEASE中有这个类。原创 2016-01-21 19:05:34 · 3445 阅读 · 0 评论 -
spring websocket stomp 连接开启了用户名和密码认证的ActiveMQ
spring websocket stomp连接开启了用户名和密码认证的activeMQ,必需同时设置system-login和client-login的用户名和密码原创 2016-01-25 15:13:15 · 6584 阅读 · 0 评论 -
spring mvc里的root/child WebApplicationContext的关系
spring mvc程序里会有两个WebApplicationContext,一个是parent,从applicationContext.xml里加载的,一个是child,从servlet-context.xml里加载的。 两者是继承关系,child WebApplicationContext 可以通过getParent()函数获取到root WebApplicationContext。原创 2016-01-22 17:31:45 · 2879 阅读 · 0 评论 -
使用maven搭建XML风格的Spring MVC+WebSocket+sockjs+STOMP+ActiveMQ应用
Spring4开始支持WebSocket,也支持通过STOMP协议连接JMS消息服务器如ActiveMQ等。Spring4官方给出了这么一个STOMP例子,不过是使用注解风格的,官方例子没有我们熟悉的web.xml,没有spring.xml,这个跟Spring3差别很大,一时有点接受不了,经过自己的尝试把官方例子改成了XML风格的。原创 2016-01-21 18:46:55 · 8977 阅读 · 11 评论 -
maven构建spring4 mvc+spring4 websocket应用
上一篇文章我们没有使用Spring MVC,而是自己编写了一个Servlet用来处理来自的客户端的WebSocket连接,这篇文章我们用Spring MVC + WebSocket改造下之前的程序。我们使用Spring MVC的DispatcherServlet只拦截了websocket请求。DispatcherServlet拦截到请求后,会自动调用我们在spring.xml中注册的websocket的处理类。原创 2016-01-17 22:25:42 · 2941 阅读 · 0 评论 -
maven构建spring4 WebSocket应用, 不使用Spring MVC
我们在没有引入Spring MVC的情况下,实现了Spring WebSocket编程,但是却比较麻烦体现在2个方面:1.我们必须记录所有的websocket客户端,然后将消息广播给所有客户端。2.必须手动创建WebSocketHandler和HandshakeInterceptor等对象,无法在spring.xml中配置。所以我们还是使用SpringMVC+Websocket吧,会给编程带来很大的便利。原创 2016-01-17 21:25:45 · 3969 阅读 · 0 评论 -
使用maven构建XML风格的Spring4 MVC应用
最近项目要使用websocket构建web端实时推送应用,必需要使用Spring4,Spring3是不支持websocket的。Spring websocket和Spring MVC结合还是紧密的,所以这篇文章先解决下如何配置Spring MVC,后续博客在给出websocket的配置。原创 2016-01-16 13:53:19 · 847 阅读 · 0 评论 -
sping项目中引用第三方jar,报错: No matching bean
最近在做项目,遇到一种情况,1个子系统需要引用另一子系统提供的客户端。我所在的终端子系统A需要使用任务集成子系统B提供的查询服务。任务子系统作为第三方jar包,被引入终端子系统。A系统是一个web工程,使用了spring框架 ;B是普通的jar包,内部没有使用spring框架,但是里面的类使用@Service和@Resource注解。1.终端子系统的spring.xml的配置 mobi原创 2014-01-02 21:29:02 · 3060 阅读 · 0 评论 -
使用Spring中的aspect或advisor实现方法拦截,模拟缓存实现
AOP是一种将通用逻辑与具体业务分离的技术,能够弥补OO在横向代码复用不足的问题,很好的实现separation of concerns (SoC)。缓存是改善系统性能的一种常用技术,采取以空间换时间的策略。缓存就是与具体业务无关的,如果我们设计一个缓存框架,那么应该是可插拔的,对系统业务代码无侵入的,这很符合AOP的适用场景。我们的项目采用了Ehcache缓存框架作为底层支撑,采用Spring框原创 2014-04-03 22:05:14 · 2125 阅读 · 0 评论 -
BeanFactoryAware在InitializingBean之后执行,奇怪的Spring初始化顺序?
对于单个bean来说,确实是先执行BeanFactoryAware,后执行InitializingBean。但是对于不同的bean来说,并没有这个顺序保证。上面测试可以看出:先定义的bean先执行。spring判断bean的依赖关系,无非就是构造注入和set注入,上面的2个A和B并没有显示地依赖关系,虽然逻辑上是B依赖于A,但是spring并不知道这种关系。为了让spring知道这种逻辑上的依赖关系,spring专门提供了depends-on.原创 2016-10-31 20:31:40 · 4002 阅读 · 1 评论