+-

在程序启动期spring 就会去创建一些对象存储到ioc
autowired 这个是是看当前的类型正如下面的AccountDao
会去找它对应的实现类
但是可能有多个实现类 所以要用qualifier来指定id来确定
一开始如果为accountDao变量名就不会报错
这是因为它会去根据变量名去匹配id
这两个方法是同一个线程
threadlocal key就是当前线程 value为它这个线程存储的数据可以为任何类型 这两个方法是同一个线程的 所以他们的threadlocal是同一个(同一个容器) 所以第一个放进去的连接的容易 跟二个取出连接的容器是同一个 所以 保证了调用这两个方法的连接为同一个 即保证是同一个事务
remove就是清空容器
https://www.cnblogs.com/tnt-33/p/10149087.html
两个动态代理的区别
常用
最终所注入的接口对象已经为动态代理的接口对象