如何在初始化bean时让Spring执行一个方法?

时间:2015-04-30 21:13:48

标签: java spring spring-mvc initialization postconstruct

我正在使用Spring 3.2.11.RELEASE。我有一个类(用@Service注释),其中有一个方法

package org.mainco.subco.myproject.service;
…
@PostConstruct
public void initCaches()
{
    LOG.info("initiating caches.");
    …
}   // initCaches

但是,尽管服务类包含在<context:component-scan />中,但此方法永远不会被调用。我在我的应用程序上下文文件中有这个...

<context:component-scan base-package="org.mainco.subco" />

如何在创建/初始化bean时获取要执行的方法?我不关心它是@PostConstruct,如果我需要另一种方式或注释。那。关键是该方法可以访问自动装配的Spring bean。

2 个答案:

答案 0 :(得分:0)

您可以使用Spring的#labelzone{ float:left; width:500px; height:500px; border: 1px solid black; position: relative; } .label{ position:absolute; border:1px solid black; background-color:white; } Aspect Orientation)功能吗?

aop

您需要加入<aop:config> <aop:aspect ref="service"> <aop:pointcut id="myotherbeans" expression="execution(* package.name.myotherbeans.initializers(...))" /> <aop:before pointcut-ref="myotherbeans" method="initCaches" /> </aop:aspect> </aop:config>

答案 1 :(得分:0)

我所做的是实现“InitializingBean”界面...

implements InitializingBean 

并覆盖“afterPropertiesSet”方法解决了我的问题。