当前位置: 首页 > 面试题库 >

自动浇铸春豆

卓嘉良
2023-03-14
问题内容

有没有一种方法可以自动将Spring
bean投射到应用程序上下文XML中定义的类?我想避免将有关Bean的类型信息放在2个地方....在xml配置文件以及代码中作为强制转换。

例如,给定此配置文件

<bean id="bean-name" class="SimpleSpringBean"  scope="prototype">
    <property name="myValue" value="simple value"></property>
</bean>

我可以这样调用ApplicationContext.getBean("bean- name")以避免避免将返回类型直接转换为SimpleStringBean。我知道我也可以打电话ApplicationContext.getBean("bean- name", SimpleSpringBean.class)避免强制转换本身,但是我仍然在2个地方输入了类型信息。

看起来Spring可以获取类信息(ApplicationContext.getType)或从Bean本身获取类型,但是没有程序员的干预就无法自动转换类型。


问题答案:

我同意Sii,您应该避免尽可能多地调用getBean。只需将您的bean连接到依赖于它们的类即可。

不过,如果您有一个用于保存应用程序上下文的类,则可以提供如下包装通用方法:

class MyContextHolder{
    ApplicationContext appContext;
    ......
    @SuppressWarnings("unchecked")
    public static <T> T getBean(String beanName)
    {
        return (T)appContext.getBean(beanName);
    }
}

那你可以不用铸造就可以叫它

MyClass mc = MyContextHolder.getBean("myClassBean");


 类似资料:
  • 请帮我想想为什么这行不通。(这不是一个实际问题,而是OCPJP考试的心理练习。) //编译器错误:类型不兼容;必需:短,找到:整数 我假设编译器尝试在没有(或之前)拆箱的情况下先进行强制转换,而例如算术操作(iBoxediBoxedi)将首先拆箱。因此,是否可以说自动装箱/取消装箱在操作顺序(一元、算术、关系、逻辑、条件、分配)中占有一席之地,它到底在哪里? 我在下面的源代码中读到了有关强制转换的

  • 上面是一段代码,它以某种形式出现在我即将进行的一次考试的过去试卷中。这个问题的想法是衡量你是否完全理解多态性,动态和静态铸造。面向对象的基本思想。 我想把我认为正确的东西拿出来,如果人们能纠正我或补充一点,我将不胜感激。 我看不出任何与上面代码相关的其他观点。

  • Java-Spring-骆驼 我想用服务列表发起骆驼路线。 想做下面的事情,但是< code>from方法似乎不是一个生产者。如何定义动态生产者?

  • 铸龙是一款用于分析用户行为事件的 BI 软件。 特点如下 事件分析 埋点上报 漏斗分析 留存分析 智能路径分析 报表,面板管理 多平台部署,直接二进制部署无需搭建环境 技术栈主要用 mysql redis kafka clickhouse 系统组成 该系统分为以下四部分 埋点上报sdk report_server sinker manager 埋点上报sdk: 用于采集埋点信息,目前SDK支持类型

  • 我目前在辅导一个高中生AP Java,她问了我一个关于“双选”的问题。我以前从未听说过这个术语,但显然她的老师希望她在即将到来的期末考试中知道这个术语。 她的老师提供的例子是,如果你想将一个整数转换成一个字符串,你必须执行以下操作才能避免编译器错误: 问题是:你想在现实生活中什么时候这样做? 老师只提供了导致运行时错误的示例。此外,我从来不知道有一个术语,但这样做似乎是个坏主意,因为只有当两种类型

  • 本文向大家介绍autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法,包括了autojs 蚂蚁森林能量自动拾取即给指定好友浇水的实现方法的使用技巧和注意事项,需要的朋友参考一下 1、简介 定时 实现对蚂蚁森林能量的自动拾取,以及帮指定好友浇水 2、开发环境搭建 语言: javaScript 开发工具:vcCode. auto.js 1)、手机安装 auto.js 我们编写的脚本就是在这个上面