我正在使用几个Spring MVC Web应用程序,我使用getter / setter依赖注入并在app-servlet.xml文件中配置我的所有bean.
我相信我遵循惯例,我将大部分属性和bean注入我的控制器bean,例如我的DAO和我在applicationContext.xml或app-servlet.xml中指定的其他bean
随着我的应用程序变得越来越复杂和越来越大,这些文件中的bean已经填满了更多正在注入的属性.
我的问题是,行在哪里,或者应该注入什么的约定,以及应该在控制器中指定为实例字段/变量的内容.
如果我要在实际控制器中指定字段的值,或者如果我要将值注入到控制器bean中,有时我会面临一种情况.
例如,我正在使用速度模板库来发送我的电子邮件.我的Velocity模板的目录有一条路径.我面临着以下其中一项.
在我的控制器中,我可以指定值
private String basePath = "/path/to/velocity/templates";
或者在我的Controller bean中,我可以将相同的值注入该控制器
在我的班上,我会得到这个注入值的getter / setter.
我不知道在哪里划线.
解决方法:
我通常注入基于:
>我是否需要根据环境/部署更改此值(例如,使用PropertyPlaceholderConfiguration).
>我是否需要嘲笑某些东西进行测试.
>将来是否有其他人可能会使用此课程,并希望执行上述任何一项课程.
如果你不小心,那么你的配置可以成为大量的注入属性(我更喜欢使用构造函数参数,所以我可以保证正确的实例化,但这是另一个故事).上述指南在限制注射次数的同时可以灵活地进行.
标签:java,dependency-injection,spring
来源: https://codeday.me/bug/20190717/1483864.html