Spring:强制重载bean

时间:2017-09-08 07:11:36

标签: java spring collections javabeans reload

我已经挣扎了一段时间,这让我发疯了。 基本上我是一个定义如下的bean:

<bean id="tipoUfficioGiudiziarioListImpl" singleton="false"
    class="java.util.ArrayList" >
</bean>

它基本上是表格中所有条目的集合。现在问题是这个bean在服务器启动时加载(或者在我第一次使用时加载lazy-init="true")但如果我在db上添加一个条目(通过应用程序本身或sql),bean就不会重新加载,并且在使用该集合时我没有看到新条目。

有没有办法强迫它重新加载或使其无效,以便在下次首次使用时加载?

我使用的是Spring 1.2

2 个答案:

答案 0 :(得分:1)

也许,你想在每次使用它时实例化一个新的bean实例,你可以使用原型范围来实现吗? <bean id = tipoUfficioGiudiziarioListImpl" class="java.util.ArrayList" scope = "prototype">

答案 1 :(得分:0)

你可以这样做:

@Aspect
@Component
public class DaoAspect {
    @Autowired
    TipoUfficioGiudiziarioListImpl impl;
    //your dao path,intercept your dao operation.
    @Before("execution(* com.test.dao..*.*(..))")
    public void doBeforeInServiceLayer(JoinPoint joinPoint) {
        /*

           TODO  some condition

       */      
        impl.loaddata();
    }
}