@Autowired vs @Required on setter

前端 未结 3 1443
广开言路
广开言路 2021-01-01 10:16

I\'m curious to know what\'s the difference between code like this:

class MyClass {
   @Autowired
   MyService myService;
}

and code like t

3条回答
  •  有刺的猬
    2021-01-01 10:58

    @watchme @Required -annotation tells to the container that this property needs to be initialized as part of configuration, it can be initialized either through xml configuration or through @Autowired annotation or through java bean creation.

    1. xml example:

      public class SimpleMovieLister 
      { 
       private MovieFinder movieFinder;
      
       @Required
       public void setMovieFinder(MovieFinder movieFinder)
       {
          this.movieFinder = movieFinder;
       }
      }
      
      
      
      
      
       
      
    1. through @Autowire

      public class SimpleMovieLister 
      { 
        @Autowired 
        @Required
        private MovieFinder movieFinder;
      }
      
      

    Here truly speaking we don't need @Required as it @Autowired default is Required.

    1. thru @Bean

      public class SimpleMovieLister 
      { 
        private MovieFinder movieFinder;
      
        @Required
        public void setMovieFinder(MovieFinder movieFinder)
        {
           this.movieFinder = movieFinder;
        }
      }
      
      
      public class AppConfig {
      
      @Bean
      public SimpleMovieLister getSimpleMovieLister()
      {
         SimpleMovieLister simpleMovieLister = new SimpleMovieLister();
         simpleMovieLister.setMovieFinder(new MoveFinder());
      }
      }
      
      
      
      

提交回复
热议问题