zoukankan      html  css  js  c++  java
  • spring和springmvc中,Configuration注解Bean重复加载

    问题:bean重复加载
    1.如下代码所示,开启Configuration注解,实现Bean代码注入,发现bean重复加载

    @Configuration
    public class EhCacheConfig {
        
        @Bean(name="cacheManagerFactoryBean")
        public EhCacheManagerFactoryBean ehCacheManagerFactoryBean(){
            EhCacheManagerFactoryBean cacheManagerFactoryBean = new EhCacheManagerFactoryBean();
            cacheManagerFactoryBean.setConfigLocation(new ClassPathResource("ehcache.xml"));
            cacheManagerFactoryBean.setShared (true);
            return cacheManagerFactoryBean;
        }
        
        @Bean(name="ehCacheFactoryBean")
        public EhCacheFactoryBean ehCacheFactoryBean(){
            EhCacheFactoryBean ehCacheFactoryBean = new EhCacheFactoryBean();
            ehCacheFactoryBean.setCacheManager(ehCacheManagerFactoryBean().getObject());
            ehCacheFactoryBean.setCacheName("accountCacheName");
            return ehCacheFactoryBean;
        }
        
        @Bean(name="cache")
        public Cache cache(){
            EhCacheCache cache = new EhCacheCache(ehCacheFactoryBean().getObject());
            return cache;
        }
    }

    2.spring.xml扫描配置

    	<context:component-scan base-package="com.bsoft.platform" >
    	 	<context:include-filter  type="annotation" expression="org.springframework.stereotype.Service" />   
    	</context:component-scan>	
    

      


    3.spring-mvc扫描配置

    	<context:component-scan base-package="com.bsoft.platform" use-default-filters="true">
    		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
    	</context:component-scan>
    

      



    4.解决:
    在spring-mvc上加上exclude-filter,排除不需要扫描的注解,代码如下所示

    <context:component-scan base-package="com.bsoft.platform" use-default-filters="true">
    		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
    		<context:exclude-filter type="annotation" expression="org.springframework.context.annotation.Configuration" />
    </context:component-scan>

    或者这样排除springmvc不需要扫描的类
    <context:exclude-filter type="regex" expression="com.bsoft.platform..*Config" />

  • 相关阅读:
    数据库——游标
    避免全表扫描的sql优化
    聚合索引(clustered index) / 非聚合索引(nonclustered index)
    [摘抄]Python内置的字符串处理函数整理
    Web 安全渗透方面的学习路线?
    [转载]从关系型数据库到非关系型数据库
    [转载]shell脚本
    关于工具面试题
    ES6之promise
    关于vue-router总结
  • 原文地址:https://www.cnblogs.com/xunianchong/p/6958119.html
Copyright © 2011-2022 走看看