Spring使用代码进行注册Bean的时候只是传入了一个class它是怎么根据class注册对象的......

问题描述

private void registerDataSourceBean(String name, DataSource ds) {BeanDefinition bd = new RootBeanDefinition(ds.getClass());bd.setScope(BeanDefinition.SCOPE_SINGLETON);this.dbf.registerBeanDefinition(name, bd);}private DefaultListableBeanFactory dbf;代码如上

解决方案

没搞明白你的意思, 只要有个class即可反射创建了啊 而且你这地也不对,只注册一个class; BeanDefinition bd = new RootBeanDefinition(ds.getClass()); 比如url什么的你没有给它。你需要的是public void registerSingleton(String beanName, Object singletonObject) 直接把ds注册进去即可

时间: 2024-11-03 09:28:04

Spring使用代码进行注册Bean的时候只是传入了一个class它是怎么根据class注册对象的......的相关文章

Spring在代码中获取bean的方法小结_java

一.通过Spring提供的ContextLoader WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext(); wac.getBean(beanID); 这种方式不依赖于servlet,不需要注入的方式.但是需要注意一点,在服务器启动时,Spring容器初始化时,不能通过这种方法获取Spring容器 二.实现接口ApplicationContextAware 定义工具类 public class Sp

Spring实战3:装配bean的进阶知识

主要内容: Environments and profiles Conditional bean declaration 处理自动装配的歧义 bean的作用域 The Spring Expression Language 在装配bean-依赖注入的本质一文中,我们探讨了Spring的三种管理bean的方式:自动装配.基于JavaConfig.基于XML文件.这篇文字将探讨一些Spring中关于bean的管理的高级知识,这些技能你可能不会每天都用,但是非常重要. 3.1 Environments

Spring实战2:装配bean—依赖注入的本质

主要内容 Spring的配置方法概览 自动装配bean 基于Java配置文件装配bean 控制bean的创建和销毁 任何一个成功的应用都是由多个为了实现某个业务目标而相互协作的组件构成的,这些组件必须相互了解.能够相互协作完成工作.例如,在一个在线购物系统中,订单管理组件需要与产品管理组件以及信用卡认证组件协作:这些组件还需要跟数据库组件协作从而进行数据库读写操作. 在Spring应用中,对象无需自己负责查找或者创建与其关联的其他对象,由容器负责将创建各个对象,并创建各个对象之间的依赖关系.例如

【Spring实战】—— 6 内部Bean

本篇文章讲解了Spring的通过内部Bean设置Bean的属性. 类似内部类,内部Bean与普通的Bean关联不同的是: 1 普通的Bean,在其他的Bean实例引用时,都引用同一个实例. 2 内部Bean,每次引用时都是新创建的实例. 鉴于上述的场景,内部Bean是一个很常用的编程模式. 下面先通过前文所述的表演者的例子,描述一下主要的类: package com.spring.test.setter; import com.spring.test.action1.PerformanceExc

spring-请教Spring如何清楚单例bean的缓存

问题描述 请教Spring如何清楚单例bean的缓存 我有两个WEB工程使用了同一个名字的bean,在运行第二个工程的时候报错,错误是在第一个工程里的同名bean的函数里,控制台里有下面这句话 :- Returning cached instance of singleton bean 'itemController' 请问这个缓存怎么才能删除!! 我在把tomcat下的work目录里的localhost删掉又重启了服务器,但是这个缓存还是存在,请高手指点以下吧,谢谢了!! 解决方案 Sprin

《Spring攻略(第2版)》——1.2 配置Spring IoC容器中的Bean

1.2 配置Spring IoC容器中的Bean 1.2.1 问题 Spring提供了一个强大的IoC容器来管理组成应用的bean.为了利用容器服务,你必须配置运行于Spring IoC容器中的Bean. 1.2.2 解决方案 你可以通过XML文件.属性文件.注释甚至API来配置Spring IoC容器中的Bean. Spring允许你在一个或者多个bean配置文件中配置bean.对于简单的应用程序,可以在单个配置文件中集中配置bean.但是对于有许多bean的大型应用,你应该根据其功能(例如控

spring中如何获取注入bean里方法上的注解?

问题描述 spring中如何获取注入bean里方法上的注解? 有这样一个需求,在spring中,想用反射获取一个注入bean中方法的注解 一般情况下这样的操作就行了: Method method = bean.getClass().getMethod(...); Annotation[] annotations = method.getAnnotations(); 这样就能获取注解了. 但在spring中,这种方法是获取不到annotation的,原因是这里的bean其实是一个代理类.那么问题来

无法通过spring+Hibernate删除和更新bean,但是可以插入,有谁遇到过这种情况吗?

问题描述 无法通过spring+Hibernate删除和更新bean,但是可以插入,有谁遇到过这种情况吗? 控制台没有报错 控制台没有报错 控制台没有报错 控制台没有报错 控制台没有报错 解决方案 修改了Spring配置文件的事物管理bean,然后就好了 解决方案二: 看下hibernate的配置对不对,什么报错

Spring Task Scheduler - No qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined

1. Overview In this article, we are discussing the Springorg.springframework.beans.factory.NoSuchBeanDefinitionException – this is a common exception thrown by the BeanFactory when trying to resolve a bean that simply isn't defined in the Spring Cont