标签: spring

业务bean不适合spring自动注入的解决

上有一篇文章说到了quartz下的listener,因为了业务组件bean,导致了spring抛出了不适合自动注入的警告。
在一些场景,这样的警告不会造成什么影响,抛出这个警告的原因之一是一个被spring处理的bean,未被spring注册的bean处理器依次处理完,即被实现了接口BeanPostProcessor的类处理。
此时就就会在spring容器加载日志的开始部分打印:
INFO – Bean ‘xxxxx’ is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying);
阅读全文——共780字

Spring实现从数据库加载资源配置信息

Spring在很多项目中都有应用,作为IOC容器和处理依赖关系。在处理依赖的时候不仅能根据类型注入相应的bean还能从资源文件中读取配置,给一些基本类型的数据进行初始化赋值,这一类多见于系统的配置信息或者一些路径信息。
Spring提供了从资源文件中读取这些信息,任何方式都有弊端,放在资源文件中,管理起来不方便,不能做一些共性控制.但是相对来说开发人员使用起来简单,更改测试都很方便。
如果把spring的配置文件从数据库加载怎么做呢…
这里我设计了2张表,使用组别(group)和具体配置项(property)的关系来对配置信息做区分。
阅读全文——共2800字

not eligible for auto-proxying

<Bean ‘customerService’ of type [class com.xxx.CustomerServiceImpl] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)>
遇到这样一个问题,指定的Bean在容器加载时报了此警告,意思是不适合自动注入。导致的现象是bean里的属性依赖在使用时抛空指针异常。

上图是Spring源码里关于此段警告的判断。
阅读全文——共747字

Spring @Async

Spring 3.X新增注解@async ,可以标记方法异步运行。方法可为void也可以用Future作为返回值.
如果有返回值,可以使用future.get()得到需要返回的对象.
可以使用future.get(time,unit),在指定的时间内获取返回值,如果超过设置的时间则抛出异常,异步运行.

阅读全文——共721字

Spring Security 3.1 配置笔记一

Web的鉴权是应用中都很常用的一个模块,因为Web的特性,鉴权比较流行基于资源的控制,加上一些比较成熟的鉴权设计比如角色,这样能满足日常绝大部分的权限管理。
配置了下SpringSecurity3.1,网络资料基本上都是3.0,配置的过程中觉得变化很大,完成之后觉得核心的东西还是没有太大变化,看博文SS从2.x升级到3.X的变动是很大的。
分几部分来发表:
1.项目配置
阅读全文——共526字

Spring Quartz持久化的一些问题

         之前在项目中使用过Spring继承quart来实现定时任务,当时是第一次使用,通过内存的方式来配置quartz,简单快捷,只是配置信息都在配置文件中,修改和扩展以及贴合自身应用都不太方便。
       Quartz也可以通过数据库的方式来持久化任务信息,更加的具有扩展性,应用也更加的广泛,只是配置起来会稍微复杂一下,比如数据库、以及实现quartz的一些类来达到灵活控制业务的目的。
       在配置好能持久化的Quartz后,很多的业务方法会和数据库打交道,这个会有一个问题就是序列化,quartz有一调度类实现了序列化,通过spring注入一些没有序列化的对象就会报错,在应用中访问数据库很多地方时hibernate,如果dao没有实现序列化,那么项目是跑不起来的。
阅读全文——共799字