Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java配置中spring@Controller注释的模拟_Spring_Spring Mvc - Fatal编程技术网

Java配置中spring@Controller注释的模拟

Java配置中spring@Controller注释的模拟,spring,spring-mvc,Spring,Spring Mvc,在SpringDI中,我喜欢在@Configuration类中使用带工厂方法的@Bean,而不是显式使用@Component注释。对于SpringWeb的@Controller注释,有没有同样的方法?换句话说,我是否可以在某些@Configuration类中通过工厂方法而不是显式注释来声明控制器?这是不可能的,因为@controller只能放在类型上。但更重要的是方法。我假设您有多个带有@RequestMethod注释的方法。您可以使用不同的网络路径在此控制器中放置任意多的方法。哪一个最终应该和

在SpringDI中,我喜欢在@Configuration类中使用带工厂方法的@Bean,而不是显式使用@Component注释。对于SpringWeb的@Controller注释,有没有同样的方法?换句话说,我是否可以在某些@Configuration类中通过工厂方法而不是显式注释来声明控制器?

这是不可能的,因为@controller只能放在类型上。但更重要的是方法。我假设您有多个带有@RequestMethod注释的方法。您可以使用不同的网络路径在此控制器中放置任意多的方法。哪一个最终应该和你想要的差不多?

为什么要投反对票?为什么不发表评论?除了@Controller注释和组件扫描之外,如果有其他方法注册控制器,我也很感兴趣。只需向上投票:)我不喜欢没有评论的向下投票。那么,我们如何从错误中吸取教训呢?组件注释也不允许用于方法,但是Bean注释做得很好。我想要的是控制器模块化和可替换性。我想把控制器换成另一个环境。它应该有相同的路径和方法,但内部有另一个逻辑。使用Bean注释很容易——我只需使用另一种配置来初始化spring或配置文件机制。但是如何用控制器来实现呢?当然,我可以创建一个带有逻辑的bean,并将控制器方法委派给它,但我相信应该有一种更方便的方法。你也可以将概要文件注释放在用@controller注释的类上,以将它们从应用程序上下文中排除。没有概要文件也可以吗,仅仅使用原始配置类?实现这一点的方法不止一种。一种方法是将一个概要文件的所有控制器放在一个特定的包中,并将配置类中的组件扫描扩展到该包。我明白了,但我喜欢配置类方法的一点是,有关bean的所有信息都集中并压缩在一个工厂方法列表中,该列表易于读取和更改。是的,我知道您可以将包设置为扫描,但问题是-您必须导航到该包并在那里操作文件。如果您想要一个不同的impl,您必须将旧的impl复制到另一个包中,只是为了不丢失它并将新的impl复制回来?对我来说,这不是很方便。