装配bean基于注解
- 注解:就是一个类,使用@注解名称
- 开发中:使用注解 取代 xml配置文件
- @Component取代
<bean class="">
@Component(“id”)取代<bean id="" class="">
- web开发,提供3个@Component注解衍生注解(功能一样)取代
<bean class="">
@Repository :dao层
@Service:service层
@Controller:web层 - 依赖注入,给私有字段设置,也可以给setter方法设置
普通值:@Value(“”)
引用值:
方式1:按照【类型】注入------->@Autowired
方式2:按照【名称】注入1------->@Autowired+@Qualifier(“名称”)
方式3:按照【名称】注入2------->@Resource(name=“名称”)
public class TestBean12 {
@Autowired //字段注入
private User user;
//省略getter和setter ,spring底层反射实现了setter
}
public class TestBean13 {
private User user;
@Autowired //setter方法注入
public void setUser(User user) {
this.user = user;
}
public String getMessage() {
return message;
}
}
public class TestBean14 {
private String message;
private List<String> list;
@Autowired(required = true) //任意一个或多个参数方法注入
private void initMessage(String message, ArrayList<String> list) {
this.message = message;
this.list = list;
}
//省略getter和setter
}
- 生命周期(bean中自定义的init和destroy方法上面添加这些注解)
初始化:@PostConstruct
销毁:@PreDestroy - 作用域(在类的上面添加@Scope(…))
@Scope(“prototype”) 多例
- 注解使用前提,添加命名空间,让spring扫描含有注解类

<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:component-scan base-package="com.itheima.g_annotation.a_ioc"></context:component-scan>
</beans>