Shanghai stocks closed at a 10-year high on Monday, bucking regional weakness in the wake of the Iran conflict as investors snapped up energy, gold and defence shares.