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

  • 相关阅读:
    测试脚本
    浅谈优化SQLServer数据库服务器内存配置的策略
    真正的取真实IP地址及利弊Asp.net
    ASP.NET一些常用正则表达式
    (CHMSoftware)工具集锦
    仿真方面的文章
    TPlan测试过程管理工具技术摘要
    Linux 2.6内核的精彩世界(多媒体)
    Ajax技术实践之完成Ajax自动完成功能
    硬件测试
  • 原文地址:https://www.cnblogs.com/Bin-x/p/15458435.html
Copyright © 2011-2022 走看看