首页 > 其他分享 >注入属性Autowire和Qualifier

注入属性Autowire和Qualifier

时间:2023-06-08 15:22:48浏览次数:57  
标签:UserDao Qualifier Autowire dao server 注解 public 属性

@Autowire根据属性类型注入

使用:

在server包使用注解@server创建对象

在dao包使用注解@Repository创建对象

在dao包使用注解@Autowire装载server包对象

具体实现:

  1. 在server包创建UserServer类,并加注解@server
  2. 在dao包创建UserDao接口和UserDaoImpl实现类,在实现类加注解@Repository
  3. 在server包的UserServer类中引入UserDao类,并加注解@Autowire
  4. 在xml中配置识别注解的标签
  5. 测试

代码:

  1. dao层
//接口
package com.guodaxia.spring5.dao;

public interface UserDao {
    void add();
}

//实现类
package com.guodaxia.spring5.dao;
import org.springframework.stereotype.Repository;

@Repository
public class UserDaoImpl implements UserDao{

    @Override
    public void add() {
        System.out.println("dao ing .....");
    }
}
  1. server层
package com.guodaxia.spring5.service;

import com.guodaxia.spring5.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    //重点关注!!!!!
    @Autowired
    private UserDao userDao;

    public void test(){
        System.out.println("service ing,,,,,");
        userDao.add();
    }
}
  1. 测试层
@Test
    public void testService(){
        ApplicationContext context =
                new ClassPathXmlApplicationContext("bean.xml");
        UserService userService = context.getBean("userService", UserService.class);
        System.out.println(userService);
        userService.test();
    }

一个接口有多个实现类,@Autowire根据类型注入,如果实现类类型一样,则无法判别是要实现那个实现类,所以有了@Qualifier注解

@Qualifier根据属性名称注入

  • 很简单,在上文代码的基础上,在UserServer类中引入UserDao类时,再加上一个注解@Qualifier;
  • 并且在server包和dao包的实现类上的注解加个相同的value值即可,好比id匹配具体哪个实现类。

标签:UserDao,Qualifier,Autowire,dao,server,注解,public,属性
From: https://www.cnblogs.com/container-simple/p/17466586.html

相关文章

  • mybatis generator 使用与 mybatis 与属性转换
    mybatisgeneratorMyBatisGenerator是MyBatis提供的一个代码生成工具。可以帮我们生成表对应的持久化对象(po)、操作数据库的接口(dao)、CRUDsql的xml(mapper)。MyBatisGenerator是一个独立工具,你可以下载它的jar包来运行、也可以在Ant和maven运行。引入相关依赖......
  • 从嵌套对象中删除属性
     您可以直接从每个模型中删除disabled和error键,而不是遍历每个模型的键和值:Object.entries(myObject.initialState.models).forEach(([key,value])=>{deletevalue.disabled;deletevalue.error;});......
  • 8.7 属性覆盖
    democlassChannel{Stringinfo="www.mldn.cn";//非私有属性;默认default,private不可访问;}classDatabaseChannelextendsChannel{intinfo=12;publicvoidfun(){System.out.println("[父类info成员属性]"+super.info);......
  • WPF学习笔记一 依赖属性及其数据绑定
    本文想通过由浅入深的讲解让读者比较深的理解依赖属性. 首先,我们回顾一下依赖属性的发展历史. 最初,人们提出面向对象编程时,并没有属性这个说法,当时叫做成员变量.一个对象由成员变量和成员函数组成,如下:PublicClassA{PublicintIndex;//成员变量PublicvoidFu......
  • 7、hive shell客户端与属性配置、内置运算符、函数(内置运算符与自定义UDF运算符)
    ApacheHive系列文章1、apache-hive-3.1.2简介及部署(三种部署方式-内嵌模式、本地模式和远程模式)及验证详解2、hive相关概念详解--架构、读写文件机制、数据存储3、hive的使用示例详解-建表、数据类型详解、内部外部表、分区表、分桶表4、hive的使用示例详解-事务表、视图、物......
  • TSS固体放电管的属性大致有哪些?
    之前在写关于GDT放电管与TSS放电管之间的差异时,其实有谈到TSS(固体放电管)它拥有的一些特性,今天优恩小编还是想重复一下,希望更多小伙伴能够记住。TSS,有人叫它固体放电管、也有人叫它半导体放电管,它主要的应用场景就是在一些通讯接口、安防系列、工业、网络系统中,用作于通讯信号端口的......
  • Spring 学习笔记(7)—— 使用外部属性文件
    1使用PropertyPlaceholderConfigurer属性文件驱动器类名,JDBC的URL地址及数据库用户名/密码都直接写在XML文件中,部署应用的时候,必须先找出这个Bean部署XML文件,再找出数据源Bean定义的代码段进行调整,很麻烦。在实际应用中,应该将这些配置信息抽取到一个配置文件中。2使......
  • Vue——计算属性、监听属性、Vue生命周期、组件介绍和使用、组件间通信、ref属性
    计算属性//1计算属性是基于他们的依赖变量进行缓存的//2计算属性只有在它的相关依赖变量发生改变时才会重新求值,否则不会变(函数只要页面变化,就会重新运算)//3计算属性就像python中的property装饰器,可以把方法/函数伪装成属性//4计算属性,必须有返回值<body><divid......
  • 特殊文件:Properties属性文件
             ......
  • 爬取网站的背景是获取《王者荣耀》游戏中各个英雄的详细属性数据
    一,选题背景 此次爬取网站的背景是获取《王者荣耀》游戏中各个英雄的详细属性数据,以便进行游戏分析和比较。《王者荣耀》是一款非常流行的多人在线战斗竞技游戏,拥有大量的英雄角色,每个英雄都有其独特的属性和技能。游戏玩家需要通过了解每个英雄的属性和技能,才能更好地制定游戏......