My question is it a good idea to have "(fixedRate = 14400000)" hard coded in Java? Supposing we need to change the schedule on which the job runs or not to have the job run on a given day? Is there a better design to get around these restrictions?
Well if its not going to change often I suppose its fine You can use a PropertySourcesPlaceholderConfigurer to load the value from a properties file and use SPEL to put it in.
Of course that is where it is expecting a String with yours I think it wants a long. It might do the type conversion for you, try it. If it does not you can get more creative with your SPeL and call the Long.valueOf() method on your property.