• 使用代码向一个普通的类注入Spring的实例


    转载请在页首注明作者与原文地址

    一:应用场景

    什么是普通的类,就是没有@Controller,@Service,@Repository,@Component等注解修饰的类,同时xml文件中,也没有相应的配置。

    适用场景,当我们要开发自己的框架的时候,就可能会用到这种技术手段。常规的开发是用不到的。

    当这个对象必须由我们创建的时候,但是又需要用到一些spring容器里面的对象,这个时候就可以适用当前场景了。

    二:代码

    2.1:一个普通的类

    我们准备一个普通的类

    import org.springframework.beans.factory.annotation.Autowired;
    
    public class HeHe {
    
        @Autowired
        private ShortMessageDao dao;
        
        public void go(){
            System.out.println(dao.toString());
        }
    }

    可以看到,它就是一个普通的类,没有任何的声明成为bean的注解。

    当然,在实际开发框架的过程中,我们肯定需要需要开发一个方式,让客户去声明这样的一个类,可以用配置文件,但是主流都是注解,比如说我们自定义一个注解放到该类上面,

    然后程序启动的时候扫描拥有这个注解的类,然后我们自动为其创建对象,等等。当然这些不在本文章的讲解内容之中。

    2.2:开始注入

    代码很简单

    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = Application.class)
    public class TestApplication {
    
        @Autowired
        private AutowireCapableBeanFactory capableBeanFactory;
        
        @Test
        public void  test(){
            HeHe hehe = new HeHe();
            capableBeanFactory.autowireBean(hehe);
            hehe.go();
        }
    }

    这里是写了一个test类去注入,实际开发框架的过程中,我们肯定是在项目启动的时候,就把这个类注入进去了。比如使用@Configuration注解

  • 相关阅读:
    自学Linux命令的四种方法
    POJ 1170 Shopping Offers -- 动态规划(虐心的六重循环啊!!!)
    九度OJ 1447 最短路 1008 最短路径问题
    九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)
    PHPActiveRecord 学习三
    PHPUnit 组织测试
    PHPActiveRecord validates
    PHPActiveRecord 学习二
    PHPActiveRecord 学习一
    PHP ActiveRecord demo栗子中 关于类名 的问题
  • 原文地址:https://www.cnblogs.com/zhuxiaojie/p/6008600.html
Copyright © 2020-2023  润新知