The 24-year-old was a first-team regular when the Cherries gained promotion to the Championship a couple of years ago and spent the second half of last term on loan at Peterborough.
City boss Steven Pressley told the club's official website: "Josh has been a target for us throughout the summer and we're delighted to bring him in before the start of the season.
"He is a proven League One striker who knows what it takes to be successful at this level and also has Championship experience. He is at a perfect age and he is an exciting player who will give us another striking option.
"Importantly, Josh is a player who very much suits the footballing philosophy at this football club and I'm sure he'll have a positive impact at the club."