java – Spring @Autowired字段 – 哪个访问修饰符,private或pac
发布时间:2020-12-14 06:06:21 所属栏目:Java 来源:网络整理
导读:假设我们在类中的各个字段上使用@Autowired注释,并且我们没有写入也可以设置字段的setter或构造函数. 问题 – 访问修饰符应该是私有的还是私有的(即没有)? 例如: public class MyClass { @Autowired private MyService myService;} VS public class MyClas
假设我们在类中的各个字段上使用@Autowired注释,并且我们没有写入也可以设置字段的setter或构造函数.
问题 – 访问修饰符应该是私有的还是私有的(即没有)? 例如: public class MyClass { @Autowired private MyService myService; } VS public class MyClass { @Autowired MyService myService; } 在第一种情况(私有字段)中,Spring使用反射来连接字段,即使它没有setter. 第二种情况(包私有字段)允许我们能够访问这些字段(例如,设置嘲笑),如果我们需要扩展类进行测试. 所以这两种情况都能正常工作,但是更为推荐,特别是在测试方面呢? 解决方法
第一种情况也允许您根据框架注入模拟.例如使用Mockito的@InjectMocks注释. Spring Test中还有ReflectionTestUtils.setField,…
我个人不太喜欢修改课程太多用于测试目的,所以我会去第一种情况.但是在一天结束时,这主要取决于您的首选测试框架. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Java 8 Streams查找元素并将其添加到新List的开头
- java – HttpURLConnection conn.getRequestProperty返回nu
- HashTable和HashMap的区别详解
- Java 定时器(Timer,TimerTask)详解及实例代码
- 在运行时动态创建表和java类
- wait.until(ExpectedConditions)在硒中不再工作
- Java编程思想里的泛型实现一个堆栈类 分享
- java – 检查是否可以安全地关闭对话框
- java – 如何为JMenu子菜单设置加速器?
- java – 使用Jersey测试restful webservice时的HTTP状态404