Our legacy application provide a static method
public static boolean persist(Data data) for service/class callers for data persistence.
I do see unit testing issue for callers. Is this also an example for tight coupling? - As far I understand, changes can be made inside static method without any changes required for callers so this should not be an tight coupling issue.
Are they additional disadvantages in using this approach compared to dependency injection approach to expose services?
P.S. This service will be called from multiple threads simultaneously. Service will perform database lookup, add additional data for persistence, call business logic etc. Service in itself has no state.
I also read following related article on dependency injection vs static for function: For function with no dependencies we can use static invocation. But again here this is a service and not a plain function call.
Please add comments if this is irrelevant per community standards and guide where such questions should be posted and where to learn about best practices for exposing java classes/services.