我最近碰到一個類凸輪這樣的:春季註釋 - 好還是壞?
public class SomeDao {
@Inject
private DataSource dataSource;
@Value("#{someMap['someDao.sql']}")
private String sql;
private JdbcTemplate jdbcTemplate;
@PostConstruct
private void postConstruct() {
jdbcTemplate = new JdbcTemplate(dataSource);
}
...
}
現在我想單元通過注入DataSource和SQL字符串測試這個類。據我所看到的,有兩種可選方式:
- 最多可以裝入,這將是緩慢的,最有可能加載了一大堆的東西,我不需要爲測試
- 應用上下文使用反射Spring註解之前設置的專用屬性和調用私有postConstruct()方法
在未來的日子,類會被寫成這樣:
public class SomeDao {
private String sql;
private JdbcTemplate jdbcTemplate;
public SomeDao(DataSource dataSource, String sql) {
this.jdbcTemplate = new JdbcTemplate(dataSource);
this.sql = sql;
}
...
}
我可以輕鬆地測試這個類,而不需要反射或彈簧。我的課是一個純粹的pojo,並沒有春天的依賴。
那麼,春天的註釋是一件好事,還是他們倒退?是否有時候我應該使用舊的XML應用上下文來使用它們和時間?
謝謝, 蘭斯。
這絕對是真棒,是我想要的東西。感謝soulcheck。 –