小编cyr*_*ony的帖子

从服务类中调用Spring @Transactional时,此方法不适用于带注释的方法

在下面的代码中,当从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)

java spring spring-mvc spring-transactions

5
推荐指数
1
解决办法
2677
查看次数

java 中是否有 java.lang.String.format() 的替代方法来使用通用占位符

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)

java string-formatting

1
推荐指数
1
解决办法
2528
查看次数