在下面的代码中,当从methodOuter内部调用methodInner()时,应处于事务范围内。但事实并非如此。但是,当直接从MyController类调用methodInner()时 ,它受事务绑定。有什么解释吗?
这是控制器类。
@Controller
public class MyController {
@Autowired
@Qualifier("abcService")
private MyService serviceObj;
public void anymethod() {
// below call cause exception from methodInner as no transaction exists
serviceObj.methodOuter();
}
}
Run Code Online (Sandbox Code Playgroud)
这是服务等级。
@Service("abcService")
public class MyService {
public void methodOuter() {
methodInner();
}
@Transactional
public void methodInner() {
.....
//does db operation.
.....
}
}
Run Code Online (Sandbox Code Playgroud) slf4j Logger 具有干净的格式化语法。(使用花括号)
org.slf4j.Logger.error("Invalid value1={} for value2={}", value1, value1)
Run Code Online (Sandbox Code Playgroud)
下面的方法有类似的替代方法吗?我想要一个通用的 ({}),而不是特定于类型的占位符。
String.format("Invalid value1=%d for value2=%d", value1, value1)
Run Code Online (Sandbox Code Playgroud)