zoukankan      html  css  js  c++  java
  • Spring @Bean标注在有参方法上

    @Bean标注在有参方法上可以获取参数的Bean,若为List集合 则获取继承或实现该类的所有已注入的Bean,验证如下

    Person.java

    public interface Person {
        /**
         * 信息
         * @return String
         */
         String inf();
    }
    

    Student.java

    public class Student implements Person {
        private String work;
        public Student(String work){
            this.work=this.getClass().getName()+":"+work;
        }
        @Override
        public String inf() {
            return this.work;
        }
    }
    

    Worker.java

    public class Worker implements Person {
        private String work;
        public Worker(String work){
            this.work=this.getClass().getName()+":"+work;
        }
        @Override
        public String inf() {
            return this.work;
        }
    }
    

    AnimalAutoConfiguration

    @Configuration
    public class AnimalAutoConfiguration {
        @Bean
        public Student getUser(){
            return new Student("学生");
        }
        @Bean
        public Worker getWorker(){
            return new Worker("上班族");
        }
        /**
         * 此处将把所有实现Persion接口的类的Bean注入list集合中
         */
        @Bean
        public List<Person> getAnimals(List<Person> list){
            return list;
        }
    }
    

    Test.java

    @RestController
    public class Test {
        @Autowired
        private  Student student;
        @Autowired
        private  Worker worker;
        @Autowired
        private  List<Person> animals;
    
        @GetMapping(value = "/get/info")
        public  void test(){
            System.out.println("student--->"+student.inf());;
            System.out.println("worker--->"+worker.inf());;
            for (Person person:animals) {
                System.out.println("animals--->"+person.inf());;
    
            }
        }
    }
    

    注:getway网关中使用该方式将所有全局过滤器集合作为参数(单个实现类也需要注入,才能获取到集合)

  • 相关阅读:
    前端HTMLCSS
    jedis 连接池的使用
    win8+安装net3.5步骤与常见错误.
    并行线程的生命周期
    OneNote截图快捷键冲突解决方案
    C#中lsitView如何搜索某个子项
    redis哨兵与集群
    git笔记
    微软官方Hololens开发课程介绍
    Markdown使用入门简介
  • 原文地址:https://www.cnblogs.com/jinit/p/13461368.html
Copyright © 2011-2022 走看看