zoukankan      html  css  js  c++  java
  • 用JSR的@Inject代替@Autowired完成自动装配

    从spring3.0开始spring支持JSR-330 的标准注解。主要是javax.inject这个包下的:

    下面的例子用@Inject代替@Autowired。完成自动装配:

    MovieFinder的代码如下:
    package com.timo.demo;
    
    import org.springframework.stereotype.Component;
    
    @Component
    public class MovieFinder {
        private String name;
        public void findMovies(){
            System.out.println("1,2,3");
        }
    }

    SimpleMovieLister的代码如下:

    package com.timo.demo;
    
    import org.springframework.stereotype.Component;
    
    import javax.inject.Inject;
    import javax.inject.Provider;
    @Component
    public class SimpleMovieLister {
        @Inject
        private Provider<MovieFinder> movieFinder;
    
        public void setMovieFinder(Provider<MovieFinder> movieFinder) {
            this.movieFinder = movieFinder;
        }
        public void listMovies(){
            movieFinder.get().findMovies();;
        }
    }

    配置类的代码如下:

    package com.timo.demo;
    
    import org.springframework.context.annotation.ComponentScan;
    
    @ComponentScan(basePackageClasses = DemoAppConfig.class)
    public class DemoAppConfig {
    }

    测试类的代码如下:

    package com.timo.demo;
    
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    
    public class Test {
        public static void main(String[] args) {
            AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(DemoAppConfig.class);
            SimpleMovieLister movieLister = applicationContext.getBean(SimpleMovieLister.class);
            movieLister.listMovies();
        }
    }
  • 相关阅读:
    备战考研算法笔记(四)快速排序
    VMware安装
    使用 Vagrant 打造跨平台开发环境
    类加载器,注解,动态代理
    IE兼容forEach/map/every/some等新方法
    不得不看的Java代码性能优化总结
    关于Oracle误操作--数据被Commit后的数据回退(闪回)
    JPA与Hibernate的关系
    Jenkins-GitHub-Gradle自动构建项目
    过滤器Filter
  • 原文地址:https://www.cnblogs.com/1540340840qls/p/7928892.html
Copyright © 2011-2022 走看看