nutz,今晚来一发(16): 类标注了@IocBean和@Inject,然后new到的对象无注入?

∥☆過路亽.° 提交于 2019-12-06 12:14:30

nutz群隔三差五就会有人问为啥XXX没有注入, 以下是对话的截图:

声明一下, 下面的截图只是为了说明问题, 无其他含义.


有时候我会想, 一个用Spring注解标注的类, 如果new出来,难道就能注入?? 不解求解释

提问:

一个对象标注了注解,到底发生了什么事?

为啥new出来的对象没有注入??


--------------------------------------上期的分割线-------------------------

上期答案:


  1. 不一定

  2. dao1会无法回滚

原因:

A. Trans里面的事务在run方法结束后(即用户代码执行完毕后)提交.

---------->  所以: run方法内抛出异常, dao1/dao2均回滚. 也就能得出第1/2题的答案

B. Trans使用的不是JTA或XADataSource.     JTA或XADataSource, 会使用二阶段提交, 即prepareCommit和commit. 

首先对2个数据源执行prepareCommit, 完成后, XA驱动会确保commit操作总是成功的(好吧,其实也只是理论上,鬼知道会不会网络出错,文件系统异常, 宇宙粒子打中数据点).

-----------> 所以, 会出现 dao1提交成功后, dao2提交失败. 这时候dao1已经不能回滚.


虽然这几率很小, 但它的确存在.

正如任何数据库都不能100%保证数据安全, 只有风险在可以接受的范围,那就是好的咯


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!