0
我一直在使用Spring 3.2+一段時間,大多數情況下,我可以使用下面的任何一個選項,它的工作原理,但我想知道是否有什麼特別的區別。掃描@Configuration類和@Import配置類之間的區別
這裏是我的JndiConfig Java配置類:
@Configuration
public class JndiConfig {
@Bean(name = "dataSource")
public DataSource dataSource() throws Exception {
BasicDataSource datasource = new BasicDataSource();
datasource.setDriverClassName("com.mysql.jdbc.Driver");
datasource.setUrl("jdbc:mysql://localhost:3306/csdb");
datasource.setUsername("root");
datasource.setPassword("root");
datasource.setValidationQuery("SELECT 1");
return datasource;
}
}
我可以使用下列選項:
OPTION 1
@Configuration
@Import({JndiConfig.class})
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private DataSource dataSource;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().dataSource(dataSource);
}
}
OPTION 2
@Configuration
@EnableWebSecurity
@ComponentScan(basePackages = "com.security"
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private DataSource dataSource;
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.jdbcAuthentication().dataSource(dataSource);
}
}
在選項1我導入JndiConfig
,其中在選項2我只是做一個組件掃描JndiConfig
。
任何人都可以解釋這兩者之間的區別嗎?
謝謝。
第二點看起來有些用處,我不知道。 還有什麼你想指出的? – dharam
在執行'@ Import'時,您必須知道需要加載的所有配置類。當開發更大的應用程序時,這可能很困難,因此掃描「@ Configuration」類更容易,並且允許更多面向組件的設計。 (你可以用xml文件做btw)。 –
目前我沒有添加任何東西 –