spring-1

创建bean对象

	
		
		
		
		
		
		
	

		
	

	
	

autoType使用:

	
	
可以达到相同效果,自动装配dataSource对象。


注入集合:

	
		
			
				Jack
				Tom
			
		
	
	
		
			
				Jack
				Tom
			
		
	
	
		
			
				
				
			
		
	

		
			
				root
				root
		
	

引用方式List集合注入

        
		Jack
		Tom
	
	
		
	

使用jdbc.properties配置jdbc,mysql数据库连接信息

特别注意:#{***},井号

    
	
		
		
		
		
		
		
	

spring-1_第1张图片

jdbc.properties文件

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/spring?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
user=root
pwd=root
characterEncoding=utf-8
useUnicode=true

扫描注解方式:


    

注:第一次写的时候,大意了包含User类的包DAO,base-package="DAO",却忘记了将包含JDBCDataSource的prj_1包添加至扫描包中,所以一直出错,而且提示错误在userDao中,所以不好找了。

@Component("dataSource")
public class JDBCDataSource {
	private String driver;    //    1
	@Value("#{jdbc.url}")
	private String url;
	@Value("#{jdbc.user}")
	private String user;
	@Value("#{jdbc.pwd}")
	private String pwd;
	@Value("#{jdbc.characterEncoding}")
	private String characterEncoding;
	@Value("#{jdbc.useUnicode}")
	private String useUnicode;
	public String getCharacterEncoding() {
		return characterEncoding;
	}
        @Value("#{jdbc.driver}")    //    2
	public void setDriver(String driver) throws Exception {
		System.out.println("执行getjdbc.driver");    //    3
		Class.forName(driver);
		this.driver = driver;
	}
注:对于driver变量的注解,如果写在1处的化,则代码3,不会执行
@Repository("userDAO")
public class JdbcUserDao implements UserDAO, Serializable{
	private JDBCDataSource dataSource;    //    1
	@Autowired
	public void setDataSource(@Qualifier("dataSource")JDBCDataSource dataSource) {    //    2
		System.out.println("!!.dataSource");    //    3
		this.dataSource = dataSource;
	}
注:与上面的一样的,如果把@Autowired放在1前面,也是可以的,但这3就不会执行了
JDBCDataSource dataSource = (JDBCDataSource) applicationContext.getBean("dataSource");
UserDAO userDAO = (UserDAO)applicationContext.getBean("userDAO");
此处的bean名字由类眉头的注解指定





















你可能感兴趣的:(spring)