我正在使用几个Spring MVC Web应用程序,我使用getter / setter依赖注入并在我的 app-servlet.xml 文件中配置我的所有bean。
我相信我遵循惯例,我将大部分属性和bean注入我的控制器bean,例如我的DAO和我在 applicationContext.xml 中指定的其他bean或者在 app-servlet.xml
中随着我的应用程序变得越来越复杂和越来越大,这些文件中的bean已经填充了更多正在注入的属性。
我的问题是,行在哪里,或者应该注入什么的约定,以及应该在控制器中指定为实例字段/变量的内容。
如果我要在实际控制器中指定字段的值,或者我要将值注入到控制器bean中,有时候我遇到了这种情况。
例如,我正在使用力度模板库来发送我的电子邮件。我的Velocity模板的目录有一条路径。我面临着以下其中一种情况。
在我的控制器中,我可以指定值
private String basePath = "/path/to/velocity/templates";
或者在我的Controller bean中,我可以将相同的值注入该控制器
<property name="basePath" value="/path/to/velocity/templates"/>
在我的课堂上,我会为这个注入的值设置getter / setter。
我不确定在哪里划线。
答案 0 :(得分:7)
我通常注入:
如果你不小心,那么你的配置可以成为大量的注入属性(我更喜欢使用构造函数参数,所以我可以保证正确的实例化,但这是另一个故事)。上述指南适用于限制注射次数,同时允许灵活性。
答案 1 :(得分:4)
不要预先计划“灵活性”。通常你不需要它。
到时候你真的需要它,然后重构你的代码。