创建同一个类的多个bean对象,使用 @Qualifier(value = "createUserDao2")解决

批量添加Bean 批量添加Bean 除了使用@Component注解,或者@Configuration+@Bean注解添加Bean,还有一种方式可以批量添加Bean,就是使用@Import注解 @Import @Import注解添加在自定义的配置类上,在注解的属性中设置一个或多个需要添加的组件的Class类即可将这些组件添加到容器中 首先我们定义三个类,并且不添加@Component注解 @Data @AllArgsConstructor @NoArgsConstructor public class Person { 阅读详情

通过@Bean注解将Bean注入spring容器

package com.edu.spring.config;/**
 * @author n00444323
 * @date 2019/1/15 12:12
 */

import com.edu.spring.config.bean.AnimalBean;
import com.edu.spring.config.bean.CatBean;
import com.edu.spring.config.bean.DogBean;
import com.edu.spring.config.factorybean.RunnableFactoryBean;
import com.edu.spring.mvcbean.UserController;
import com.edu.spring.mvcbean.UserDao;
import com.edu.spring.mvcbean.UserService;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Scope;

/**
 * @param
 * @return
 * @throws
 */

@Configuration
public class MyConfig
{

    @Bean
    public UserDao createUserDao ()
    {
        return new UserDao();
    }

    @Bean
    public UserDao createUserDao2 ()
    {
        return new UserDao();
    }



}

 

package com.edu.spring.mvcbean;/**
 * @author n00444323
 * @date 2019/1/15 15:58
 */

import com.sun.org.apache.bcel.internal.generic.JSR;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;

import java.lang.annotation.Inherited;

import javax.annotation.Resource;
import javax.inject.Inject;

import jdk.nashorn.internal.objects.annotations.Getter;
import jdk.nashorn.internal.objects.annotations.Setter;

/**
 * @param
 * @return
 * @throws
 */
@Service
public class UserService
{

    @Autowired
    @Qualifier(value = "createUserDao2")  //使用Qualifier指定bean对象
    private  UserDao userDao;


    @Resource  //JSR 250 提供的注入能力
    @Qualifier(value = "createUserDao2")
    private  UserDao userDao1;


    @Inject
    @Qualifier(value = "createUserDao2")
    private  UserDao userDao2;

    private  void show(){
        System.out.println("UserService...userDao");
    }

    @Override
    public String toString()
    {
        return "UserService{" +
                "userDao=" + userDao +
                ", userDao1=" + userDao1 +
                ", userDao2=" + userDao2 +
                '}';
    }
}

 

 

如何正确使用 @Qualifier 注解来解决多个同类型 Bean 注入的问题 本文将详细介绍 @Qualifier 注解的作用、使用方法以及示例场景,以帮助读者了解如何正确使用 @Qualifier 注解来解决多个同类型 Bean 注入的问题。 阅读详情

相关推荐

四足机器人如何用对抗运动先验(AMP)实现复杂地形行走?Unitree Go1实战解析

本文深入解析了四足机器人Unitree Go1如何通过对抗运动先验(AMP)算法实现复杂地形行走。AMP结合模仿学习与对抗训练,使机器人仅凭本体感知就能适应未知地形。文章详细介绍了AMP的核心架构、仿真训练工程实践以及在Unitree Go1上的部署优化方案,展示了其在极端地形下的卓越性能表现。

weixin_29050513的博客 327

spring初始化时创建两个bean

今天在使用spring时发现容器会重复创建两个bean网上类似情况都是配置文件的问题  可是我这就只有这两个类出现这种情况 ,  其他spring容器当中的bean都是很乖巧的创建一次.所以感觉这个情况并不是 spring配置文件的问题 .@Repository public class ArticleDAOImpl extends GenericDAOImpl<Article> im...

种花途 1973

LightTools手动创建菲涅尔透镜的5个实用技巧(附详细步骤图)

本文详细介绍了在LightTools中手动创建菲涅尔透镜的5个核心技巧,包括理解旋转体与折线原理、高效构建多齿轮廓、编辑优化、坐标系定位以及属性设置与验证。通过分步图解和实用策略,帮助用户突破内置工具限制,实现对非标准齿形和复杂光学设计的完全掌控,提升建模精度与仿真效率。

onion的博客 775

自动装配同一个类的两个不同的bean(redis,mysql等使用)

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34347651的博客 784

Lumerical官方案例、FDTD时域有限差分法仿真学习(十三)——多模干涉耦合器(MMI)

计算通过 1×2 端口多模干涉 (MMI) 耦合器的宽带传输和光损耗。 使用设备 S 参数在 INTERCONNECT 中创建 MMI 的紧凑模型。 它还展示了如何使用 CML 编译器提取这些参数以生成紧凑模型。 一、概述 了解模拟工作流程和关键结果 低损耗光合路器和分路器是基于 Mach-Zehnder 的光调制器的基本组件,并且是集成电路的关键组成部分。通过在输入/输出波导处使用线性锥形确保输入/输出波导的模式与干涉区域之间的

weixin_45719141的博客 1万+

【自然语言处理(NLP)实战】LSTM网络实现中文文本情感分析(手把手与教学超详细)

在当今数字化时代,人们在社交媒体、评论平台以及各类在线交流中产生了海量的文本数据。这些数据蕴含着丰富的情感信息,从而成为了深入理解用户态度、市场趋势,甚至社会情绪的宝贵资源。自然语言处理(NLP)的发展为我们提供了强大的工具,使得对文本情感进行分析成为可能。在这个领域中,长短时记忆网络(LSTM)凭借其能够捕捉文本序列中长距离依赖关系的能力,成为了情感分析任务中的一项重要技术。通过详细的步骤和示例代码,深入了解如何处理中文文本数据、构建LSTM模型、进行训练和评估。

halo的博客 2万+

Spring中是否可以存在两个相同ID的bean

1、在解析xml文件时,会去校验同一个文件中不能存在相同 ID 的 bean,如果存在,会抛异常2、在解析@Bean注解时,会去校验同一个配置类中如果存在相同名称的 bean,如果存在,先注册的生效,后面的将不注册3、在扫描@Component注解时,会校验名称相同的两个bean中,前一个如果是扫描注册的,且和后一个不是同一个bean,就会抛异常4、前3个校验都是在真正注册之前校验的,如果都通过了,会在真正进行注册的地方通过参数来判断是覆盖还是抛异常。

dongdong199033的博客 1838

Docker Desktop 在 Windows 上的安装和使用

WSL 指 “”,这是一个在 Windows 10\11 上能够运行原生 Linux 二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发的,旨在使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。这极大地拓展了Windows系统的功能,使用户能够在Windows环境中享受到Linux的强大功能。//Linux容器。

swadian2008的博客 6万+

将单例的bean创建多个、单例模式(两种模式)

在spring容器中每个bean都是唯一的 怎么将单例的bean创建多个 两种实现方式 1 在类上加一个注解 @Scope("prototype") 2 在xml配置 <bean id=" " class="xxx.xxx.xxx" scope="prototype"></bean> request:针对web项目,不同的请求创建单独的bean对象,同一个请求共享一个b...

qq_41767337的博客 2026

3.摄像头组件- CVP (ISP)

本文介绍 车载摄像头组件-ISP

2401_83458819的博客 1617

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

王老师青少年编程 3396

在spring中有三中实例化bean的方式

在spring中有三中实例化bean的方式: 一、使用构造器实例化; 二、使用静态工厂方法实例化; 三、使用实例化工厂方法实例化。   每种实例化所采用的配置是不一样的: 一、使用构造器实例化; 这种实例化的方式可能在我们平时的开发中用到的是最多的,因为在xml文件中配置简单并且也不需要额外的工厂类来实现。   Xml代码  

上兵伐谋,其次伐交,其次伐兵,其下攻城 728

海康视觉算法平台VisionMaster 4.3.0 C# 二次开发01 加载方案并获取结果

第一次使用海康视觉算法平台VisionMaster 4.3.0,项目中要使用这个平台进行视觉处理并获取结果。

StevenChen的博客 7874

SpringBoot如何注入多个类型相同的Bean

@Bean(autowire = Autowire.BY_NAME,value = "kaptchaProducer") public Producer kaptchaProducer() { Properties kaptchaProperties = new Properties(); kaptchaProperties.put("kaptcha.bo...

大头之家 2万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

@Bean 注解的方法调用多次会创建多个bean 实例吗

在看一段基于 spring security 的鉴权代码的时候,我发现一个有趣的 Bean 声明和方法调用。在一个 @Configuration 注解的配置类中用 @Bean 注解了一个方法 tokenStore,声明了 Spring bean: tokenStore。在 Spring 中,把 @Bean 注解的方法称为工厂方法,即用于创建 Spring bean 的方法。在同一个配置类另一个方法 configure 中调用了这个工厂方法 tokenStore 来获取 TokenStore 实例。那么这会导

Java777i的博客 1396

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

spring动态添加bean

不知道大家想过没有,我们使用mybatis的时候只要写接口和配置上一个sql语句就可以了,单从代码的角度来看,这是不合理的。 所以我们通常在service里面注入的mapper它其实是一个代理对象 回到本人上一篇博客spring给容器中注入组件的几种方式 1.包扫描+组件注解标签注解 这种方式一般适用于自己写的类,动态代理的类无法添加(就算你自己动态生成的类上有注解标签,spring也...

weixin_46577306的博客 1523

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Spring常见问题解决 - 同一个类型的单例Bean找到了两个?

其实这个问题,在我上一篇文章Spring - 常见编程错误之Bean的定义就有说过了。但是我在做这一块内容的时候,我还是觉得做成一个问题对应一篇文章的方式比较好,这样更具有针对性。我个人也希望自己能够在源码角度能够将自身学过的知识串联起来。因此从源码角度会分析的更多一点。我们知道@Autowired@Autowired注解修饰的属性M,会被后置处理器做对应地操作。具体的实现逻辑在于类中。类主要做两件事:1.收集M的相关元数据信息。2.将这些元数据封装成类。如果某个类A中通过@Autowired。...

Zong_0915的博客 3398

Spring--Bean相关

Spring--Bean相关

qq_35239471的博客 643

啥?Spring竟然可以创建“重复”的Bean?

我们这里重新梳理下bean的创建流程:在spring注入一个普通bean的过程中,会将通过反射创建的空属性对象赋值,如果发现其依赖的属性也是一个bean,那么会首先去获取这个bean,如果获取不到的话则会转而去创建bean。而此时要创建的bean成为innerBean,并不会被spring其他bean共享,所以可以在名称上是重复的。

Trouvailless的博客 1131

Spring竟然可以创建“重复”名称的bean?—一次项目中存在多个bean名称重复问题的排查

我们这里重新梳理下bean的创建流程:在spring注入一个普通bean的过程中,会将通过反射创建的空属性对象赋值,如果发现其依赖的属性也是一个bean,那么会首先去获取这个bean,如果获取不到的话则会转而去创建bean。而此时要创建的bean成为innerBean,并不会被spring其他bean共享,所以可以在名称上是重复的。

m88997766的博客 1207

【Java愚公】springboot通过配置文件动态生成多个bean

【代码】【Java愚公】springboot通过配置文件动态生成多个bean。

qq_38362283的博客 2515

Spring获取注入Bean

package com.clicks.config; import org.springframework.beans.BeansException; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.stereotype.Component; /** * @author

weixin_48314739的博客 977

@Configuration配置 @Bean

@Configuration 和 @Bean @Configuration 用于定义配置类,作用在类上。 @Bean 用于定义 Bean对象,作用在方法上。 @Configration 注解类中可以声明一个或多个 @Bean 方法 User 类 public class User { private String name; private int age; ...

Cyms,BgXmSfXtsj !!!! Battle Each Moment !!!! 376

【SpringBoot】在一个@Bean方法内,this调用同一个类的@Bean方法会有什么效果呢?

此时配置类会被CGLIB增强(生成代理对象),放进IoC容器内的是代理,方法相互调用能够保证是同一个实例,都指向IoC内的那个单例,可以支持通过常规Java调用相同类的@Bean方法而保证是容器内的Bean,但是运行时会给该类生成一个CGLIB子类放进容器,有一定的性能、时间开销。模式中的Bean,不支持Bean间的相互调用,如果相互调用,那么将会被视为标准的Java方法调用,Spring不会通过。方法,甚至只是在一个非常普通的类中声明的Bean方法,都被认为是Lite版的配置类。

我想写点儿啥,写点儿啥呢,就写点啥。 1040

@Component可以和@Bean 用在同一个类上吗?

疑虑描述最近,在进行开发的过程中,发现之前的一个写法,类似如下以我的理解,@Configuration 加 @Bean 会创建一个 userName 不为 null 的 UserManager 对象,而 @Component 也会创建一个 userName 为 null 的 UserManager 对象那么我们在其他对象中注入 UserManager 对象时,到底注入的是哪个对象?因为项目已经上线了很长一段时间了,所以这种写法没有编译报错,运行也没有出问题后面去找同事了解下,实际是想让生效,而实际也确实是它

jjc4261的博客 738
上一篇: SpringBoot bean注入的三种方式
下一篇: 注入对象的三种方法
liuhehe321
博客等级 码龄10年 105粉丝 261原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值