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

一:应用场景

什么是普通的类,就是没有@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注解

最新文章

  1. 设计模式 之 观察者(Observer)模式
  2. Rhel6-varnish配置文档
  3. 原生js提交表单
  4. Openstack的nova-network的vlan模式扩展2
  5. 《redis-php中文参考手册》
  6. 主要从架构上来做优化,负载均衡、CDN、静态化、数据库的水平切割和纵向切割、读写分离、分布式缓存着手
  7. ☀Chrome模拟移动端浏览器
  8. 放弃移动版Flash而非AIR
  9. Git命令详解(一)-个人使用
  10. 武汉科技大学ACM:1001: 猴子选大王
  11. 基础DP的一些知识总结(未完成)
  12. [转]六款常用的linux C/C++ IDE
  13. mysql版本升级
  14. eos开发(二)使用cleos命令行客户端操作EOS(钱包wallet基础操作)
  15. HDU4292-Food-网络流
  16. bash 5
  17. leetCode(寻找峰值)-二分查找
  18. USB摄像头无法正常读取问题
  19. windows composer 安装,使用新手入门
  20. Find the peace with yourself

热门文章

  1. MVC CodeFirst简单的创建数据库(非常详细的步骤)
  2. 读python源码--对象模型
  3. c#多线程
  4. python中IndentationError: expected an indented block错误的解决方法
  5. java中的内部类
  6. “老坛泡新菜”:SOD MVVM框架,让WinForms焕发新春
  7. RunLoop 总结:RunLoop的应用场景(一)
  8. Git使用详细教程(二)
  9. Linux基础介绍【第九篇】
  10. 使用nginx反向代理,一个80端口下,配置多个微信项目