For my danger room, I built a 5x5 room and used a dwarf with absolutely no talent in carpentry make 24 wooden training spears. Then I placed an armor stand in the middle and put the upright spear traps on every tile of floor in the room so that the only safe point in the room to stand is literally on the armor stand. Designate it as barracks, link all the traps up to the same lever, order it pulled on repeat. Then I just assigned a squad to train in it and their skills would skyrocket during their individual combat drills. You can also activate them and make the room a burrow and tell them to defend it.
Basically, you want no-quality wooden training spears, with only one per trap, cause then they won't hurt any dwarf, even if they don't have armor, so safe tiles are unnecessary. (Cats are another story, keep the door locked). The idea is that as they stand on this tile, every time the spikes come out of the ground due to the lever being pulled, they gain skills in whatever stops it - armor if their armor deflects it, weapon if they block it with their weapon, shield for shield, and dodging if they jump out of the way. You have to have the lever going, or else the trap doesn't do anything. So you do need all the mechanisms. The quality doesn't affect how much damage it does, I believe, only the spear. So pick a dwarf with no carpentry talents to make your spears.