使用@Autowired注解开启自动专配模式(按类型)
package com.example.annotation_di.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
@Service
public class BookServiceImpl implements BookService {
@Autowired
private BookDao bookDao ;
@Qualifier("bookDao2")//指定bean,必须依赖@Autowired
// public void setBookDao(BookDao bookDao) {
// this.bookDao = bookDao;
// }
@Override
public void save() {
System.out.println("book service save...");
bookDao.save();
}
}
使用@Qualifier注解开启指定名称装配bean,@Qualifier注解无法单独使用,必须配合@Autowired注解使用
注意:
1.自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法
2.自动装配建议使用无参构造方法创建对象(默认),如果不提供对应的构造方法,请提供唯一的构造方法
使用@Value实现简单类型注入
@Repository("bookDao")
public class BookDaoImpl implements BookDao {
@Value("yxjwjk")
private String name;
public void save() {
System.out.println("book dao save.."+name);
}
}
使用@PropertySource注解加载properties文件
@Configuration
@ComponentScan("com.example.annotation_di")
@PropertySource("jdbc.properties")
public class SpringConfig {
}
注意:路径仅支持单一文件配置,多文件请使用数组格式配置,不允许使用通配符*