Prepare the Filling: In a large skillet or wok, heat a tablespoon of vegetable oil over medium-high heat. Add the ginger and garlic and cook for about 30 seconds, until fragrant.
Add the cabbage, carrots, celery, and mushrooms. Cook, stirring frequently, until the vegetables are softened but still slightly crisp, about 5-7 minutes.
Stir in the bean sprouts, scallions, and cooked chicken or shrimp (if using). Cook for another minute.
In a small bowl, whisk together the soy sauce, oyster sauce (if using), sesame oil, cornstarch, and water.
Pour the sauce mixture into the skillet and cook, stirring constantly, until the sauce thickens and coats the vegetables, about 1-2 minutes. Season with salt and white pepper to taste. Remove from heat and let the filling cool completely.
Wrap the Spring Rolls: Lay a spring roll wrapper on a clean surface with one corner pointing towards you (like a diamond).
Place about 2 tablespoons of the cooled filling in the center of the wrapper, near the bottom corner.
Fold the bottom corner up and over the filling.
Fold in the left and right sides, like an envelope.
Tightly roll the spring roll up from the bottom to the top.
Dab a little bit of water on the top corner to seal the spring roll. It should look like a neat little cylinder.
Fry the Spring Rolls: Heat about 2 inches of vegetable oil in a large pot or deep fryer to 350°F (175°C). You can test the temperature by dropping a small piece of spring roll wrapper into the oil – it should sizzle immediately and turn golden brown in about 30 seconds.
Carefully place a few spring rolls at a time into the hot oil, making sure not to overcrowd the pot.
Fry for about 2-3 minutes per side, or until golden brown and crispy.
Remove the spring rolls with a slotted spoon and place them on a wire rack lined with paper towels to drain excess oil.