The deal announced Friday had been agreed to last month pending a successful physical.
Spangenberg, who turns 28 in March, was released by San Diego in November after refusing a minor league assignment. He is taking a cut from his $1.7 million salary last year.
Selected by the Padres with the 10th overall pick in the 2011 amateur draft, he hit .258 with 27 homers and 109 RBI in parts of five seasons. He batted .235 with seven homers and 25 RBI in 116 games last year, playing second, third and left. He struck out 108 times in 298 at-bats.