相关疑难解决方法(0)

FactoryBeans和Spring 3.0中基于注释的配置

Spring提供了FactoryBean允许对bean进行非平凡初始化的接口.该框架提供了许多工厂bean的实现,并且 - 当使用Spring的XML配置时 - 工厂bean很容易使用.

但是,在Spring 3.0中,我找不到一种令人满意的方法来使用带有基于注释的配置的工厂bean(néeJavaConfig).

显然,我可以手动实例化工厂bean并自己设置任何所需的属性,如下所示:

@Configuration
public class AppConfig {

...

    @Bean
    public SqlSessionFactory sqlSessionFactory() throws Exception {
        SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
        factory.setDataSource(dataSource());
        factory.setAnotherProperty(anotherProperty());

        return factory.getObject();
    }
Run Code Online (Sandbox Code Playgroud)

然而,如果这将无法FactoryBean实现任何Spring特有的回调接口,如InitializingBean,ApplicationContextAware,BeanClassLoaderAware,或@PostConstruct例如.我还需要通过调用来检查的FactoryBean,找出回调接口它实现了,那么实现这个功能我自己setApplicationContext,afterPropertiesSet()等等.

这对我来说感觉很尴尬和反过来:应用程序开发人员不应该实现IOC容器的回调.

有没有人知道使用Spring Annotation配置的FactoryBeans更好的解决方案?

java spring inversion-of-control spring-annotations

24
推荐指数
3
解决办法
4万
查看次数