1、创建配置类SpringConfig
import javax.sql.DataSource;
@Configuration
@ComponentScan("com.sp.study")
@PropertySource({"classpath:jdbc.properties"})
public class SpringConfig {
@Value("${jdbc.driver}")
private String driverrClassName;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean("dataSource")
public DataSource createDataSource(){
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName(driverrClassName);
druidDataSource.setUrl(url);
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
return druidDataSource;
}
}
注解解释:
- @Configuration ,表名当前类是⼀个配置类;
- @ComponentScan, 注解,替context:component-scan,需要扫描的包;
- @PropertySource,引⼊外部属性配置⽂件(如:jdbc.properties);
- @Import ,引⼊其他配置类;
- @Value ,对变量赋值,可以直接赋值,也可以使⽤ ${} 读取资源配置⽂件中的信息;
- @Bean ,将⽅法返回对象加⼊ SpringIOC 容器。
2、启动
javaEE
@Test
public void testIoCAnno() throws Exception {
//通过配置类来启动容器
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
//测试
AccountDao accountDao = (AccountDao) applicationContext.getBean("accountDao");
System.out.println(accountDao);
}
Java web
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!--告诉ContextloaderListener知道我们使用注解的方式启动ioc容器-->
<context-param>
<param-name>contextClass</param-name>
<param-value>
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
</param-value>
</context-param>
<!--配置Spring ioc容器的配置文件-->
<context-param>
<param-name>contextConfigLocation</param-name>
<!--配置启动类的全限定类名-->
<param-value>com.sp.study.SpringConfig</param-value>
</context-param>
<!--使用监听器启动Spring的IOC容器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>