pring配置+依赖注入-Ehcache的Spring配置依赖注入问题

问题描述

Ehcache的Spring配置依赖注入问题

Spring在依赖注入配置时,注入的对象的类型需要同接收的参数类型相同才能注入成功的。
但是在Ehcache的注入时,我发现类型不匹配,却能注入成功。
小弟愚昧,还请多多指教。具体配置如下:
Spring的bean.xml配置如下:

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">

    <!-- 配置eh缓存管理器 -->
    <bean id="cacheManager"
        class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" />

    <!-- 配置一个简单的缓存工厂bean对象 -->
    <bean id="simpleCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean">
        <property name="cacheManager" ref="cacheManager" />
        <property name="cacheName" value="MyEhCache" />
    </bean>

    <!--- 缓存测试Bean对象 -->
    <bean id="ehcacheTest" class="spring.ehcache.EhcacheTest">
        <property name="cache" ref="simpleCache"></property>
    </bean>

</beans>

疑问说明:
org.springframework.cache.ehcache.EhCacheFactoryBean类的setter如下:

   public void setCacheManager(CacheManager cacheManager)
  {
    this.cacheManager = cacheManager;
  }
而bean.xml配置文件中配置为:
<property name="cacheManager" ref="cacheManager" />
这里cacheManager为org.springframework.cache.ehcache.EhCacheManagerFactoryBean类型,并非实际期望的:net.sf.ehcache.CacheManager类型?
请问Spring是怎么完成注入的?

同理:
测试类EhcacheTest中的属性cache为net.sf.ehcache.Cache类型,而非org.springframework.cache.ehcache.EhCacheFactoryBean类型,为什么同样能够注入成功?

还请Spring和Ehcache方面的高手帮忙看看是怎么回事?小弟感激不尽!

解决方案

http://blog.csdn.net/clj198606061111/article/details/41121437

解决方案二:

非常感谢你的帮助!你没有明白我的意思,我是想知道类型不匹配,为什么能够注入成功?

时间: 2024-10-04 14:02:27

pring配置+依赖注入-Ehcache的Spring配置依赖注入问题的相关文章

Spring整合Mongodb,Maven的依赖,Spring配置,MongoDB的公共操作类,使用SpringMVC的Controller进行测试并返回结果的案例

在和Spring和MongoDB进行整合的时候需要如下三个jar,分别是: spring-data-commons spring-data-mongodb mongo-java-driver 下面讲解Spring和MongoDB2.x进行整合的Spring配置(下面案例以下面的方式进行说明:) Maven的Pom文件的配置如下: <dependency> <groupId>org.springframework.data</groupId> <artifactId

ssh整合调用自动生成的dao,通过spring配置sessionfactory注入调用报错

问题描述 我用的是ssh整合,自动生成的Dao,但是我不想使用hibernate.cfg.xml,我在sping配置了怎样使用这是spring.xml<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema

关于繁星类的spring注入问题,xml配置非注解

问题描述 自已定义了一个基类如下:publicclassBaseDaoImpl<T>implementsBaseDao<T>{privateSqlSessionTemplatesqlSessionTemplate;publicSqlSessionTemplategetSqlSessionTemplate(){returnsqlSessionTemplate;}publicvoidsetSqlSessionTemplate(SqlSessionTemplatesqlSessionTe

ssh整合-SSH框架中Spring的依赖注入问题

问题描述 SSH框架中Spring的依赖注入问题 我做了一个struts+hibernate3+spring的整合,我applicationContext .xml文件中已经配置了 <bean id=""loginAction"" class=""com.web.LoginAction""><property name=""userDao"" ref="&qu

适应各种开发,测试,线上,线下环境的Spring配置方式

背景 假设开发了一个中间件,比如是一个缓存系统,这个中间件要配置一个IP地址,还要配置一个Factory,从这个Factory里得到一个client,如: <bean name="cacheFactory" class="com.test.cache.Factory"> <property name="address" value="192.168.1.100"/> </bean> <

详析Spring中依赖注入的三种方式_java

前言 平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中.依赖注入的另一种说法是"控制反转",通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做. 在Sprin

Spring-依赖注入简介与xml配置

spring核心是依赖注入.本质就是通过配置xml文件或注解来自动生成你需要的对象,放在spring的大容器中. spring是一个独立的框架,既可以用在java SE项目中,也可以用在 Web项目中.程序先创建bean容器,再调用bean容器的getBean()方法来获取Spring容器中的bean. 1.获得 1.1 spring 依赖 <dependency> <groupId>org.springframework</groupId> <artifactI

spring配置datasource三种方式

spring配置datasource三种方式 1.使用org.springframework.jdbc.datasource.DriverManagerDataSource 说明:DriverManagerDataSource建立连接是只要有连接就新建一个connection,根本没有连接池的作用. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSour

配置-Java Web容器启动时,SessionFactory注入失败的问题

问题描述 Java Web容器启动时,SessionFactory注入失败的问题 包结构如下:Spring配置如下:UserDAO代码如下:Tomcat一启动,报错如下:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Injection of resource dependencies failed; nested exception is org.