为什么不声明一个数组最终使它在Java中不可变?不宣称最终意味着它无法改变?
从与不可变数组相关的问题中可以清楚地看出,声明一个数组final并不会使它不可更改.
以下是可能的.
final int[] array = new int[] {0, 1, 2, 3};
array[0] = 42;
Run Code Online (Sandbox Code Playgroud)
我的问题是:那么在这里宣布决赛的功能是什么?
从春季参考文档
Spring建议您只使用@Transactional注释来注释具体类(以及具体类的方法),而不是注释接口.您当然可以将@Transactional注释放在接口(或接口方法)上,但这只能在您使用基于接口的代理时按预期工作.Java注释不是从接口继承的事实意味着如果您使用基于类的代理(proxy-target-class ="true")或基于编织的方面(mode ="aspectj"),那么事务设置是代理和编织基础设施无法识别,并且该对象不会被包装在事务代理中,这将是非常糟糕的.
虽然它只涉及接口,但抽象类也被认为是非具体的.
所以,如果我有一个抽象类
public abstract class BaseService{
//here is a concrete method
@Transactional
public void updateData{
//do stuff using dao layer
}
Run Code Online (Sandbox Code Playgroud)
以及扩展该类的具体类
public class SpecialService extends BaseService{
//body of class
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我specialService.updateData()
从我的控制器类调用它将是事务性的吗?