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" />

  • 相关阅读:
    Activiti系列——如何在eclipse中安装 Activiti Designer插件
    C语言 二维数组与指针笔记
    Ubuntu linux设置从当前目录下加载动态库so文件
    Ubuntu14.04安装nfs服务器
    Ubuntu14.04 搭建FTP服务器
    Linux备忘命令
    Java实现对xml文件的增删改查
    Java利用jacob实现打印Excel文件
    git操作列表
    swiper 窗口宽度变化,页面宽度高度变化 导致自动滑动 解决方案
  • 原文地址:https://www.cnblogs.com/xunianchong/p/6958119.html
Copyright © 2011-2022 走看看