当前位置: 首页 > 知识库问答 >
问题:

Spring 3.2依赖注入通过@资源为基元类型

和飞翔
2023-03-14

我有Java代码:

public class GreetingServiceImpl implements IGreetingService {

@Resource(name="abc")
private String anotherMsg = null;

spring配置应该是什么。xml?以下xml给出了错误信息:

创建在类路径资源[greetingConfig.xml]中定义了名为“abc”的bean时出错:设置属性值时出错;嵌套的异常是org。springframework。豆。NotWritablePropertyException:bean类[java.lang.String]的无效属性'anotherMsg':bean属性'anotherMsg'不可写或具有无效的setter方法。setter的参数类型与getter的返回类型匹配吗?

这是spring配置中的bean配置。xml:

<bean id="abc" class="java.lang.String"> 
    <property name="anotherMsg" value="testing @Resource..."/>
</bean>

共有1个答案

辛锦
2023-03-14

这个bean声明

<bean id="abc" class="java.lang.String"> 
    <property name="anotherMsg" value="testing @Resource..."/>
</bean>

用于类型为String的bean。类型字符串没有名为anotherMsg的属性。您的类,greetingserviceinpl有一个名为anotherMsg的属性(假设它有适当的getter和setter)。

如果您真的想创建一个字符串bean,并将其注入GreetingServiceImplbean,请使用构造函数参数

<bean id="abc" class="java.lang.String"> 
    <constructor-arg type="java.lang.String" value="testing @Resource..."/>
</bean>

不过,您通常不会创建Stringbean。使用属性解析来插入字符串值。查看@Value属性资源占位符配置器

 类似资料:
  • 将EntityManager注入资源可以工作,但不能注入Callable。在这里,EntityManager保持。 请告知代码保存在这里是否比保存在GitHub上更好。

  • 我想从基于xml的Spring配置切换到基于java的配置。对于构造函数类型注入,这很容易。我正在使用的示例: 但是,当我想通过setter方法注入时,我是这样做的: 我不确定这是否是注入基于Java的配置和setter方法的可能方法。不幸的是,我找不到任何示例(对于构造函数依赖项,存在很多示例)。另外,我不确定在基于Java的配置的情况下,我应该何时使用构造函数,何时使用setter。在Spri

  • 4.6 资源依赖 如果bean本身将通过某种动态过程来确定和提供资源路径,那么bean可以使用ResourceLoader接口来加载资源。 j假设以某种方式加载一个模板,其中需要的特定资源取决于用户的角色。 如果资源是静态的,那么完全消除ResourceLoader接口的使用是有意义的,只需让bean公开它需要的Resource属性,那么它们就会以你所期望的方式被注入。 什么使得它们轻松注入这些属

  • 在React中,想做依赖注入(Dependency Injection)其实相当简单。请看下面这个例子: // Title.jsx export default function Title(props) { return <h1>{ props.title }</h1>; } // Header.jsx import Title from './Title.jsx'; export defa

  • 依赖注入 Dependency Injection is a strong mechanism, which helps us easily manage dependencies of our classes. It is very popular pattern in strongly typed languages like C# and Java. 依赖注入是一个很强大的机制,该机制可以帮

  • 简介 Hyperf 默认采用 hyperf/di 作为框架的依赖注入管理容器,尽管从设计上我们允许您更换其它的依赖注入管理容器,但我们强烈不建议您更换该组件。 hyperf/di 是一个强大的用于管理类的依赖关系并完成自动注入的组件,与传统依赖注入容器的区别在于更符合长生命周期的应用使用、提供了 注解及注解注入 的支持、提供了无比强大的 AOP 面向切面编程 能力,这些能力及易用性作为 Hyper