使用@ImportResource和@Value注解进行资源文件读取
package com.imooc.beanannotation.javabased;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.ImportResource;
@Configuration
@ImportResource("classpath:config.xml")
public class StoreConfig {
@Value("${url}")
private String url;
@Value("${username}")
private String username;
@Value("${password}")
private String password;
@Bean
public MyDriverManager myDriverManager(){
return new MyDriverManager(url,username,password);
}
/*
@Bean(name="stringStore",initMethod="init",destroyMethod="destroy")
public Store stringStore(){
return new StringStore();
}*/
}
package com.imooc.beanannotation.javabased;
public class MyDriverManager {
public MyDriverManager(String url,String userName,String password){
System.out.println("url:"+url);
System.out.println("userName:"+userName);
System.out.println("password:"+password);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:property-placeholder location= "classpath:/config.properties"/>
</beans>
注意:config.properties要在classpath目录下。
package com.imooc.test.beanannotation;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
import com.imooc.beanannotation.javabased.MyDriverManager;
import com.imooc.beanannotation.javabased.Store;
import com.imooc.ioc.interfaces.UnitTestBase;
@RunWith(BlockJUnit4ClassRunner.class)
public class TestJavabased extends UnitTestBase {
public TestJavabased(){
super("classpath*:spring-beanannotation.xml");
}
@Test
public void test(){
Store store=super.getBean("stringStore");
System.out.println(store.getClass().getName());;
}
@Test
public void testMyDriverManager(){
MyDriverManager manager=super.getBean("myDriverManager");
System.out.println(manager.getClass().getName());;
}
}
运行结果:
注意:username是当前登录操作系统的用户名
要不重复,修改:
运行结果: