将controller完全封装，约定大于配置