Spring注解(JavaConfig)进行bean完全注解配置
一、Spring的原始注解全部都可以拿来用。进行完全注解开发
二、JavaConfig注解:
-
@Import({})若有多个xml文件需要导入,则在大括号中用逗号隔开
-
Bean()中填入的是id名
-
PropertySource中填入的是classpath:xxx.properties
例子:
@Configuration
@ComponentScan("com.zjc")
@Import({SpringConfig1.class})
public class SpringConfigTotal {
@Bean("userDaoImpl")
public UserDaoImpl getUserDaoImpl(){
UserDaoImpl userDaoImpl = new UserDaoImpl();
userDaoImpl.setName("dsad");
return userDaoImpl;
}
@Resource(name = "userDaoImpl")
private UserDaoImpl userDaoImpl;
@Bean("userImpl")
public UserImpl getUserImpl(){
UserImpl userImpl = new UserImpl(userDaoImpl);
return userImpl;
}
}
@Configuration
@PropertySource("classpath:jdbc.properties")
public class SpringConfig1 {
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean("datasource")
public ComboPooledDataSource getDataSource() throws PropertyVetoException {
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass(driver);
dataSource.setJdbcUrl(url);
dataSource.setUser(username);
dataSource.setPassword(password);
return dataSource;
}
}
public class DemoServlet {
@Test
public void test(){
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfigTotal.class);
UserImpl userImpl = context.getBean("userImpl", UserImpl.class);
UserDaoImpl userDaoImpl = context.getBean("userDaoImpl", UserDaoImpl.class);
ComboPooledDataSource datasource = context.getBean("datasource", ComboPooledDataSource.class);
System.out.println(datasource);
userImpl.save();
userDaoImpl.save();
}
}