注解就是替代xml进行配置的
@Component //相当于 <bean id="accountDao" class="com.baidu.dao.impl.AccountDaoImpl">
@Component("accountDao") //给个名字 value 属性 不给名字的话 默认当前简单类全名(大写)
//@Component 语义化产生的一面三个注解
@Controller //表现层
@Service //逻辑层
@Repository("accountDao") // 持久层 如果不指定 如果出现两个 相同类型的 调用时会出现两个使用条件 spring 就会报错 不知道选择使用哪一个
//-------------------------------------------------------
//自动装配 QueryRunner类 包含本身 以及 子类 都是 QueryRunner类型
@Autowired // 以QueryRunner 为例 Autowired 会自动找到QueryRunner类型进行装配
@Qualifier // @Qualifier (指定) 与 @Autowired 配合使用
private QueryRunner queryRunner ; //设置私有的queryRunner
@Value() //赋值
//----------------------------------------------
@Scope //属性:value|scopeName singleton prototype
@PostConstruct: //初始化方法
@PreDestroy: //销毁方法
//----------------------------------------------
//配置注解
指定扫描的包 以及 包下子类
有此方法 扫描后 ClassPathXmlApplicationContext 可以使用
如果没有此方法 只能使用 AnnotationConfigApplicationContext 扫描类 注解
<context:component-scan base-package="com.baidu"/>
new ClassPathXmlApplicationContext();
new AnnotationConfigApplicationContext();
//---
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext("applicationContext.xml");
AccountServices accountService = applicationContext.getBean("accountService", AccountServices.class);