JDK的动态代理

学习JDK的动态代理前需要了解静态代理的实现,假设我们有一个接口Moveable,一个类BMW,通过静态代理的方式获取汽车行驶的时间。

静态代理

(1)Moveable接口,有个move()方法

package guoli.proxy;
public interface Moveable {
    void move();
}

(2)类BMW实现了Moveable接口

点点滴滴

2015/08/08 通过2天的对比,最终还是选定原来的[typecho][1]模板
2015/08/09 修改默认模板源码,支持[代码高亮][2]
2015/08/10 修改网站后台路径
2015/08/11 添加[百度分享][3]
2015/08/15 添加[返回顶部按钮][4]
2015/08/22 增加[百度站长][5]、[谷歌网站站长\]][6]支持
2015/08/22 增加[相关文章推荐][6]
2015/08/24 footer.php增加[备案信息][7]
2015/08/30 在文章时间的位置添加"那天写的"字样,很萌有木有
2015/09/07 <del>增加JWPlayer,效果在网站视频中会有所体现</del>
2015/09/12 修改网站[favicon.ico][8]
2015/09/19 [网站认证通过][9],并在footer.php做了代码修改,部署成功。
2015/09/23 添加[微博网站接入服务][10]
2015/09/24 修改网站评论头像,改用[Gravatar][11]的源
2015/09/25 增加[天气预报][12],但感觉不好看
2015/11/22 改用[多说][13]的评论
2016/10/20 取消评论
2017/01/01 增加多说评论
2017/02/26 增加全文搜索
2017/03/22 [多说][14]关闭,改用[友言][15]
2017/04/10 仿[GitHub][16]修改样式
2017/05/31 评论改用[畅言][17]
2017/06/09 计划增加Music Play
2017/07/06 生活不只眼前的苟且还有诗和远方</del>
2017/11/02 升级Typecho到1.1 (17.10.30)版本后对永久链接含index.php不满意加之虚拟主机快到期了,随迁移到[云主机][18]上
2017/11/03 搭建LAMP环境,重新安装Typecho,设置伪静态,继续迁移中
2017/11/14 迁移完成,优化中
2017/12/25 增加[七牛云储存支持][19]
2018/01/18 增加[归档][20]
2018/09/12 把所有的文章看了一遍,考虑用Java写个博客模板
2018/10/15 迁移服务器从阿里云到腾讯云
2018/10/17 图片改用cdn.zhangguoli.cn

Spring IOC实现

IOC的加载顺序

    1. 扫描bean
    2. 注册bean
    3. 注入bean

实现思路: 将指定路径下的所有类保存到特定的List中,再去读取该List,找到特定的注解(@Controller、@Service),通过反射生成对象再将其保存到Map中,再从该Map中读取特定的注解(@Qualifier),对需要的Field注入bean。


目录结构:

├── annotation
│   ├── Controller.java
│   ├── Qualifier.java
│   ├── RequestMapping.java
│   └── Service.java
├── controller
│   └── MyController.java
├── service
│   ├── MyService.java
│   └── impl
│       └── MyServiceImpl.java
└── servlet
    └── DispatcherServlet.java