zoukankan      html  css  js  c++  java
  • @Autowired学习笔记

    @Autowired

    Autowired用于自动装配,对于接口的实现类,可以使用该注解,消除get和set方法。

    声明一个接口

    public interface UserService {
        void readyTest(String var);
    }
    

    单个实现类

    新建一个类,实现该接口

    import org.springframework.stereotype.Service;
    
    @Service
    public class UserServiceImpl implements UserService{
        @Override
        public void readyTest(String var) {
            System.out.println("方法被调用,收到参数:"+var);
        }
    }
    

    使用@Autowired注解,实现属性的自动装配

    @SpringBootTest
    class TestApplicationTests {
    
        // 属性自动装配,可以省略get和set方法
        // 此处的属性名称可以任意自定义,都会去找 UserService 接口的唯一实现类
        @Autowired
        UserService userServiceImpl;
    
        @Test
        void contextLoads() {
            userServiceImpl.readyTest("Autowired");
        }
    
    }
    

    多个实现类

    我们新建一个实现类

    import org.springframework.stereotype.Service;
    
    @Service
    public class UserServiceNewImpl implements UserService{
        @Override
        public void readyTest(String var) {
            System.out.println("新方法被调用,收到参数:"+var);
        }
    }
    

    当有多个实现类的情况下,会报错:无法自动装配。存在多个 'UserService' 类型的 Bean。
    idea会自动识别此错误。

    此时需要显式指定实现类:

    @SpringBootTest
    class TestApplicationTests {
    
        @Autowired
        UserService userServiceNewImpl;// 参数名称为类名
    
        @Test
        void contextLoads() {
            userServiceNewImpl.readyTest("Autowired");
        }
    
    }
    

    或者配合@Qualifier注解使用:

    @SpringBootTest
    class TestApplicationTests {
    
        @Autowired
        @Qualifier("userServiceNewImpl") // 指定实现类
        UserService userService;
    
        @Test
        void contextLoads() {
            userService.readyTest("Autowired");
        }
    
    }
    

    本文来自博客园,作者:Bin_x,转载请注明原文链接:https://www.cnblogs.com/Bin-x/p/15458435.html

  • 相关阅读:
    打开服务器的文档
    笔记
    centos6.5 编译openssl-1.1.1k
    搭建自己的低代码平台
    防火墙ACL配置自动化
    防火墙ACL配置自动化
    【树莓派】读取新大陆(newland)USB条码扫描器数据
    解决eclipse或sts闪退的办法(转)
    浅谈数据库迁移类项目功能测试的基本思路
    ATM取款机优化需求的用例设计
  • 原文地址:https://www.cnblogs.com/Bin-x/p/15458435.html
Copyright © 2011-2022 走看看